2014-11-03 63 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有被剝奪了簡潔和你着想等領域將替換「...」與這些字段^ _ ^)