Django模型涉及另外两个模型

时间:2014-11-11 13:21:11

标签: django django-models

我正在尝试构建一个字典应用程序并且模型很难。

现在我写了这个

class Term(models.Model):
    term_text   = models.CharField("phrase term text", max_length=100)

class Definition(models.Model): 
    term                    = models.ForeignKey(Term)
    definition_text         = models.TextField()


class Country(models.Model):
        #is this correct method?
        #Should i add ForeginKey for both Term and Definition here?

问题在于国家。术语和定义都应该有一个国家/地区字段,因为许多国家/地区可以使用术语,定义可能仅限于某些国家/地区,其他国家/地区可能有其他定义。

现在如何做这个国家模式?

我尝试使用django-countries作为术语和定义的模型字段,但它限制我每个对象仅使用1个国家/地区。

1 个答案:

答案 0 :(得分:1)

你想要的是术语和定义上的ManyToMany关系。这样,您就可以拨打my_term.countriesmy_definition.countries

class Term(models.Model):
    term_text = models.CharField("phrase term text", max_length=100)
    country = models.ManyToManyField(Country)


class Definition(models.Model): 
    term = models.ForeignKey(Term)
    definition_text = models.TextField()
    country = models.ManyToManyField(Country)


class Country(models.Model):
    # define Country model

    class Meta:
        verbose_name_plural = "countries"