如何使M2M项目独一无二

时间:2014-11-03 12:31:59

标签: django django-models django-admin

我正在为我的表项创建一个keyword字段,该字段必须是唯一的。现在我了解如何使表项独特,但我如何使M2M项目独特,以便它们不被重用?

这是我到目前为止的代码:

class Keyword(models.Model):
    name = models.CharField(max_length=100, unique=True, blank=False)

class MainEntity(models.Model): 
    keywords = models.ManyToManyField(Keyword, default=None, null=True, blank=True, verbose_name='Keyword')

所以这个例子有效,除了我可以创建一堆具有相同MainEntity的其他Keyword项的事实,但显然我不能创建重复Keyword因此它的{ {1}}。但是,我如何限制使用相同的关键字?

1 个答案:

答案 0 :(得分:0)

好的,要抓住答案。以下内容可确保您拥有唯一的Keywords,只能引用一个MainEntity,但MainEntity可以包含多个关键字:

class Keyword(models.Model):
    name = models.CharField(max_length=100, unique=True, blank=False)
    main_entity = models.ForeignKey(MainEntity)

class MainEntity(models.Model):
    ...

(我认为MaintEntity有其他字段为了简洁起见而被剥离,你将用这些字段替换" ..." ^ _ ^)