2015-07-13 83 views
0

的独特组合,我有4个Django模型:Django的外键

class KeyOne(models.Model): 
    name = models.CharField(unique=True) 

class KeyTwo(models.Model): 
    name = models.CharField(unique=True) 

class KeyThree(models.Model): 
    name = models.CharField(unique=True) 

class KeyList(models.Model): 
    key_one = models.ForeignKey(KeyOne) 
    key_two = models.ForeignKey(KeyTwo) 
    key_three = models.ForeignKey(KeyThree) 
    list = models.CharField() 

基本上,KeyList是的KeyOneKeyTwoKeyThree不同组合相关的关键字的列表。我如何确保在Django Admin中只能输入独特的组合?

+3

尝试用['unique_together'](https://docs.djangoproject.com/en/1.8/ref/models/options/ #独一无二的)在类Meta:中。 – dhke

回答

2

你必须在密钥列表的元类设置:

class KeyList(models.Model): 
    key_one = models.ForeignKey(KeyOne) 
    key_two = models.ForeignKey(KeyTwo) 
    key_three = models.ForeignKey(KeyThree) 
    list = models.CharField() 
    class Meta: 
     unique_together = (("key_one", "key_two", "key_three"),)