2016-10-28 1 views
0

Каков наилучший способ хранения поля, которое может принимать подмножество вариантов другого класса?django список значений

У меня есть класс с полем, которое является список вариантов:

class Type(models.Model): 
    type = models.CharField(max_length=4, choices=TYPE_CHOICES, default='CONS') 

и еще один класс с внешним ключом к типу, который должен хранить подмножество вариантов:

class AnotherType(models.Model): 
    model_parameter = models.ForeignKey(Type, on_delete=models.CASCADE) 
    subset = models.XXX(arbitrary subset of Type.type.TYPE_CHOICES) 

Любая помощь приветствуется!

ответ

0

A реверс ForeignKey, может быть. Указанный related_name позволит любому объекту иметь несколько обратных отношений.

class Type(models.Model): 
    type = models.CharField(max_length=4, choices=TYPE_CHOICES, default='CONS') 
    another_type = models.ForeignKey('yourmodel.AnotherType', related_name='subset') 

class AnotherType(models.Model): 
    model_parameter = models.ForeignKey(Type, on_delete=models.CASCADE) 

Теперь, если у вас есть пример модифицирован для ваших потребностей, вы можете сделать:

a = AnotherType.objects.first() 
a.subset.all() # Some of the types you associated with it 
Смежные вопросы