2014-11-03 71 views
1

我正在为我的表项目创建一个keyword字段,该字段必须是唯一的。现在我明白如何使表格项目独一无二,但是如何使M2M项目独一无二,因此它们不会被重复使用?如何使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因此其unique。但是,我如何限制同一个关键字的使用?

+0

你是什么意思的“我如何限制使用相同的关键字”?闻起来有点像你想要一个ForeignKey关系? – OldTinfoil 2014-11-03 12:49:20

+0

所以基本上我需要在我的关键字指向'MainEntity'有一个ForeignKey? – JavaCake 2014-11-03 12:54:42

+0

取决于 - MainEntity可以有多个'Keyword'吗? – OldTinfoil 2014-11-03 12:55:24

回答

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有被剥夺了简洁和你着想等领域将替换“...”与这些字段^ _ ^)