Mil*_*ano 2 python django many-to-many django-models
是否可以Model在Django中存储元组的字段?就我而言,我有一个模型翻译器。译者应存储有关他可以翻译的语言的信息。但是可能存在这样的情况,翻译人员无法将英语翻译成德语,但他/她可以朝相反的方向做。
因此,一个对象翻译器可以存储以下内容:
但他无法将英语翻译成德语或荷兰语。
因此,我可能要寻找的是存储Models元组的字段(有一个称为Language的模型)。
小智 5
我建议的解决方案是创建一个模型来表示每个单向翻译,然后使用一种ManyToManyField关系。
例如:
class LanguagePair(models.Model):
from_language = models.CharField(max_length=220)
to_language = models.CharField(max_length=220)
class Translator(models.Model):
languages = models.ManyToManyField('LanguagePair')
...
Run Code Online (Sandbox Code Playgroud)
因此,每个翻译器将具有与其关联的多个LanguagePair对象,这些对象代表他们可以翻译的语言。
由于实际的翻译是一个对象,因此您可以轻松查询所有可以翻译特定语言的翻译器。我还建议您代替在CharFields中存储语言,而实际上是制作另一个Language模型并将模型更改为对该语言LanguagePair有两个ForeignKey字段。
一种替代解决方案是从标准python列表中序列化列表或语言对,并将其作为JSON字符串存储在中,CharField但这会使查询变得困难,并且将来可能会成为问题。通常最好不要害怕将逻辑分离到单独的模型中,因为这将导致更灵活和可扩展的方法。
| 归档时间: |
|
| 查看次数: |
3078 次 |
| 最近记录: |