2015-07-13 3 views
0

У меня есть 4 Джанго модели:Джанго уникальное сочетание внешних ключей

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 является список ключевых слов, связанных с различными комбинациями KeyOne, KeyTwo и KeyThree. Как я могу убедиться, что в Django Admin можно ввести только уникальные комбо?

+3

Try с [ 'unique_together'] (https://docs.djangoproject.com/en/1.8/ref/models/options/ # unique-together) в 'class Meta:'. – dhke

ответ

2

Вы должны установить в Meta классе в KeyList:

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"),) 
Смежные вопросы