如何在Django模型中存储元组列表?

2024-05-17 05:06:07 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以在Django中存储Model元组的字段?就我而言,我有一个翻译模型。翻译人员应该存储他能翻译的语言的信息。但也有可能会出现这样的情况:译者不能从英语翻译成德语,但他/她可以做相反的方向。在

因此,一个对象转换器可以存储:

  • 从德语到英语
  • 从荷兰语到英语

但他不能把英语翻译成德语或荷兰语。在

所以我可能需要的是存储模型元组的字段(有一个模型叫做语言)。在


Tags: 对象django模型语言信息model情况方向
1条回答
网友
1楼 · 发布于 2024-05-17 05:06:07

我建议的解决方案是创建一个模型来表示每个单向转换,然后使用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')
   ...

因此,每个转换器都有多个与之关联的语言对对象,这些对象表示它们可以翻译的语言。在

这将允许您轻松地查询所有能够翻译特定语言的翻译人员,因为实际的翻译是一个对象。我还建议,作为在CharField中存储语言,您实际上需要创建另一个Language模型,并将{}模型更改为该语言的两个ForeignKey字段。在

另一种解决方案是从标准python列表序列化列表或语言对,并将其作为一个JSON字符串存储在CharField中,但这将使查询更加困难,并且可能是未来的问题。一般来说,最好不要害怕将逻辑分离成单独的模型,因为这会导致更灵活和可伸缩的方法。在

相关问题 更多 >