Как в Django для одного поля сделать несколько значений?
Добрый день!
Я новичок, потому не удивляйтесь, если увидите явные ляпы в написанном.
Делаю модель товара в интернет-магазине. У товара есть характеристики, такие как цвет или размер, где может быть несколько значений. У меня есть 2 мысли как это сделать:
1. Добавить в модель товара и заполнять по мере необходимости:
color1 = models.CharField(max_length=100, choices=ALL_COLORS, blank=True)
color2 = models.CharField(max_length=100, choices=ALL_COLORS, blank=True)
2. Сделать
colors = models.ManyToManyField(Color, verbose_name='colors')
И сделать в дополнение модель "Color", чтобы это работало.
Но выше - это всего лишь предположения новичка. Вопрос в том, как это сделать правильно?
mugiwara_l,
Тогда придумайте нормальные названия типа
color_main
color_additional
И делайте без json/eav
Если цветов мало (до 10), то еще имеет смысл делать текстовое поле
Если больше, то все равно вы не запомните аббревиатуры и лучше использовать int поле и тупл с интами
JSONField для меня пока сложно, начну с одного значения для поля и потом поэкспериментирую с JSONField - проект учебный и потому могу себе такое позволить.