Множественный выбор в модели
ANIMALS = (('dog','dog'), ('cat','cat'))
class Owner(models.Model):
animal = models.Charfield(choices=ANIMALS, max_length=10)
Моя проблема в том, как я могу сделать, если у меня есть и то и другое?
Вам необходимо иметь модель, подобную этой:
class Choices(models.Model):
animal = models.CharField(max_length=20)
class Owner(models.Model):
animal = models.ManyToManyField(Choices)
Предположительно, лучшим решением будет подумать о том, как вы собираетесь хранить данные на уровне базы данных. Это будет диктовать ваш подход и, следовательно, ваше решение. Вам нужен один столбец, в котором хранится несколько значений, поэтому лучшим подходом будет использование django-multiselectfield
from multiselectfield import MultiSelectField
MY_CHOICES = ((1, 'Item title 2.1'),
(2, 'Item title 2.2'),
(3, 'Item title 2.3'),
(4, 'Item title 2.4'),
(5, 'Item title 2.5'))
class MyModel(models.Model):
my_field = MultiSelectField(choices=MY_CHOICES,
max_choices=3,
max_length=3)