Django 如何使M2M项目独一无二

Django 如何使M2M项目独一无二,django,django-models,django-admin,Django,Django Models,Django Admin,我正在为我的表项创建一个关键字字段,该字段必须是唯一的。现在我了解了如何使表项唯一,但如何使M2M项也唯一,以便它们不被重用 以下是我目前掌握的代码: class Keyword(models.Model): name = models.CharField(max_length=100, unique=True, blank=False) class MainEntity(models.Model): keywords = models.ManyToManyField(Key

我正在为我的表项创建一个
关键字
字段,该字段必须是唯一的。现在我了解了如何使表项唯一,但如何使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')

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

好的,我来尝试一下答案。以下内容确保您拥有唯一的
关键字
,该关键字只能引用单个
main实体
,但
main实体
可以有多个关键字:

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

class MainEntity(models.Model):
    ...

(我假设
MaintEntity
为了简洁起见,其他字段已被剥离,您将用这些字段替换“…”^^)

您所说的“如何限制使用同一关键字”是什么意思?闻起来有点像你想要一个外键关系?所以基本上我需要在我的
关键字中有一个外键,指向
maintentity
?取决于-一个
maintentity
可以有多个
关键字
?它可以,基本上这就是我选择M2M方法的原因。。但是同一个关键字名称不能使用两次,是吗?还是只使用一个
main实体