2013-02-10 31 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