2013-02-10 82 views
1

Django noob here。我正在建立一本詞典/詞典,並希望將單詞同義詞彼此連接起來。如何在我的模型中設置單詞同義詞?

models.py

class Word(models.Model): 
    word = models.Charfield() 

class Synonym(models.Model): 
    word_from = models.ForeignKey(Word, blank=True, null=True, related_name="word_from") 
    word_to = models.ForeignKey(Word, blank=True, null=True, related_name="word_to") 

你如何獲得相關的同義詞?我正在使用generic.DetailView。這是否也是正確的方式來連接單詞?

在此先感謝!

回答

0

我不明白word_fromword_to的目的是什麼。但是對於字和同義詞最簡單的模型可以通過一個表格來實現爲:

class Word(models.Model): 
    word = models.Charfield() 
    synonym = models.ForeignKey(
     'self', null=True, blank=True, 
     related_name='synonyms') 
+0

是的,但這種只允許一個代名詞,是吧? – 2013-02-10 22:57:35

+0

Word_from和word_to取自文檔:https://docs.djangoproject.com/en/1.2/ref/contrib/admin/#working-with-a-model-with-two-or-more-foreign-keys對同一父母模型 – 2013-02-11 00:33:19

0

假設一個字可以有多個同義詞,每個同義詞也可能是同義換句話說,你可以使用Django的ManyToManyField,引用self

這裏有這樣一個例子:

class Word(models.Model): 
    word = models.CharField(...) 
    synonyms = models.ManyToManyField("self") 
+0

謝謝,我不知道自我參考。但在管理員現在我不能添加另一個同義詞,只有一個。有任何想法嗎? – 2013-02-10 23:32:23