我需要快速查找我在 Django 中编写的 Web 应用程序的单词。我正在考虑将单词的每个字符放在它自己的整数字段中,按位置索引。
class Word(models.Model):
word = models.CharField(max_length=5)
length = models.IntegerField()
c0 = models.IntegerField(blank=True, null=True)
c1 = models.IntegerField(blank=True, null=True)
c2 = models.IntegerField(blank=True, null=True)
c3 = models.IntegerField(blank=True, null=True)
c4 = models.IntegerField(blank=True, null=True)
mapping = [c0, c1, c2, c3, c4,]
def save(self):
self.length = len(self.word)
for (idx, char) in enumerate(self.word):
self.mapping[idx] = ord(char)
models.Model.save(self)
然后我可以进行查询,例如Word.objects.filter(length=4, mapping[2]=ord('A'))
查找所有长度为 4 且第三个位置为 A 的单词。
我不太确定设计和一些机制,所以我想在去尝试实施它之前我会在这里征求建议。我不完全确定进行查询的语法。
所以,我想问题是
- 您对设计有什么建议吗?
- 会
mapping[2]
工作吗? - 我是否能够将字典传递给过滤器命令,以便我可以拥有可变数量的关键字参数?
谢谢!