эй, я новичок в django, и мне нужна помощь, у меня есть форма с двумя полями, одно из которых - поле выбора, а атрибут choices получает свои данные из представлений, но проблема в том, что когда я вызываю форму, оба поля не возвращают ни одного вот мой forms.py
class AddToCardForm(forms.Form):
quantity = forms.CharField(required=True,
widget=forms.TextInput(attrs={
'class': 'form-control',
'type': 'text',
'name': 'quantity',
'value': "1",
'size': "2",
'id': "input-quantity",
}))
color = forms.ChoiceField(widget=forms.Select(attrs={
'name': "color",
'class': "form-control",
}),
required=True,)
def __init__(self, user, *args, **kwargs):
my_arg = kwargs.pop('choices', None)
super(AddToCardForm, self).__init__(*args, **kwargs)
self.fields['color'].widget.choices = my_arg
, а вот мой views.py
def ItemDetail(request, slug):
item = get_object_or_404(models.Item, slug=slug)
template_name = "core/test.html"
li = []
for i in item.color.all():
tu = (i.color_name, i.get_color_name_display())
li.append(tu)
form = forms.AddToCardForm(request.POST or None, choices=li) #
context = {
'object': item,
'form': form
}
if request.method == 'POST':
print(form['color'].value())
print(form['quantity'].value())
if form.is_valid():
color = form.cleaned_data.get('color')
print(color)
quantity = form.cleaned_data.get('quantity')
print(quantity)
add_to_cart_quantity(request, slug, int(quantity), color)
else:
print('form invalid')
print(form.errors)
return render(request, template_name, context)
html шаблон
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form method="POST">{% csrf_token %}
{{ form.as_p }}
<button type="submit">submit</button>
</form>
</body>
</html>
, когда я устанавливаю атрибут choices в форме со stati c данными все работает нормально, но мне нужно установить выбор из моей модели, чтобы любая помощь была бы потрясающей, спасибо