логика модели Джанго
Как правильно сделать модель для выбора?
rouse = models.CharField(choices=CHOICES_R, max_length=20, default=R37)
color = models.ChoicesText(choices=CHOICES_C, max_length=20, default=C1)
if (color == color.C1):
s_color = models.CharField(choices=CHOICES_S, max_length=20, default=None)
elif (color.choices == C2):
s_color1 = models.CharField(choices=CHOICES_S, max_length=20, default=None)
s_color2 = models.CharField(choices=CHOICES_S, max_length=20, default=None)
elif (color.choices == C3):
s_color1 = models.CharField(choices=CHOICES_S, max_length=20, default=None)
s_color2 = models.CharField(choices=CHOICES_S, max_length=20, default=None)
s_color3 = models.CharField(choices=CHOICES_S, max_length=20, default=None)
так, к сожалению, не работает. С js не дружу. Или, при выборе колличества цвета, можно это реализовать через форму? Можно ж как-то это реализовать...
Ответы (2 шт):
Автор решения: eri
→ Ссылка
Можно хранить список s_color в одном поле
color = models.ChoicesText(choices=CHOICES_C, max_length=20, default=C1)
scolor = models.CharField(max_length=200)
def set_scolor(self, x):
self.scolor = json.dumps(x)
def get_scolor(self):
return json.loads(self.scolor)
scolor = models.CharField(max_length=200)
def set_scolor(self, x):
self.scolor = json.dumps(x)
def get_scolor(self):
return json.loads(self.scolor)
Автор решения: SUPER CRYNING
→ Ссылка
Я сделал 3 choices c null=True. Скрыл эти поля, теперь если 1 цвет, остальные вернут пустое значение. Не идеально, но тоже решение... просто если поле пустое, оно не будет отображается. Но, к сожалению, в бд оно будет, что не добавляет скорости и памяти... когда будут 100500 таких данных. Но это уже другая история)) Спасибо большое за соучастие!!! Без вас как без рук)))