Django список значений
Каков наилучший способ хранения поля, которое может принимать подмножество вариантов выбора другого класса?
У меня есть класс с полем, которое представляет собой список вариантов:
class Type( models.Model):
type = models.CharField(max_length=4, choices=TYPE_CHOICES, default='CONS')
и другой класс с внешним ключом для Type, который должен хранить подмножество вариантов:
class AnotherType( models.Model ):
model_parameter = models.ForeignKey(Type, on_delete=models.CASCADE)
subset = models.XXX( arbitrary subset of Type.type.TYPE_CHOICES )
Любая помощь приветствуется!
1 ответ
Обратный 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