如何在模型中设置单词同义词?

时间:2013-02-10 21:47:52

标签: django django-models

Django noob在这里。我正在建立一个字典/词典,并希望将单词同义词相互联系起来。

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。这也是在单词之间建立联系的正确方法吗?

提前致谢!

2 个答案:

答案 0 :(得分:0)

我不明白word_fromword_to的目的是什么。但最简单的单词和同义词模型可以通过一个表来实现:

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

答案 1 :(得分:0)

假设一个单词可以包含多个同义词,并且每个同义词也可以与其他单词同义,则可以使用Django的ManyToManyField,引用self

以下是这样一个例子:

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