所以现在我的模型看起来像这样......
class Language()
name= Char()
class Word
id = pk()
language = ForeignKey(language)
name = Char()
class Translation()
original = FoeignKey(word)
L2 = ForiegnKey(language)
definition = Text()
translation = Char()
我遇到的问题是说我有两种语言(英语/西班牙语)和两个单词(el / la,the)。使用我当前的模型,我必须为这两个单词设置两个翻译对象。
class Language()
name= Char()
class Word
id = pk()
language = ForeignKey(language)
name = Char()
class Translation()
language1 = FoeignKey(word)
language2 = ForiegnKey(word)
definition_language1 = Text()
definition_language2 = Text()
虽然我尝试做选项2,但我认为不会让我直接将ForeignKeys改为单词class。
我想我已经把自己想到了一个角落,我无法决定是否完全有必要做选项2。它甚至可能吗?
答案 0 :(得分:1)
你有更多的结构,你有更多的Word表,一个语言表,然后你的转换表是一个连接Word表与自身的直通表。然后,您可以将所有其他信息放在直通表中,并将其作为两个Word对象之间的连接进行查询
如果您不知道直通表是什么,可以在此处找到有关如何使用该文档的文档:https://docs.djangoproject.com/en/1.8/topics/db/models/#extra-fields-on-many-to-many-relationships
答案 1 :(得分:0)
为什么不将第二个示例与related_name
一起使用?
class Translation()
language1 = ForeignKey(word, related_name = 'masculine')
language2 = ForeignKey(word, related_name = 'feminine')