Как правильно присвоить значение полю выбора в Django [дубликат]
Я пытаюсь присвоить значение полю ChoiceField в форме Django.
# forms.py
MONTH_CHOICES = (
("JANUARY", "January"),
("FEBRUARY", "February"),
#...
("DECEMBER", "December"),
)
class SomeMonthSelectingform(forms.Form):
month = forms.ChoiceField(choices=MONTH_CHOICES)
def __init__(self, *args, **kwargs):
month = kwargs.pop("month")
super(SomeMonthSelectingform, self).__init__(*args, **kwargs)
self.fields['month'] = month
Выбранное значение поля выбора с именем month должно быть фактическим месяцем (например, сейчас это будет 'JULY')
# views.py
def month_view(request: HttpRequest):
month = datetime.now().month
monthIndex = month - 1
monthChoice = MONTH_CHOICES[monthIndex][0]
monthForm = SomeMonthSelectingform(month=monthChoice)
if request.method == 'POST':
filledForm = SomeMonthSelectingform(data=request.POST)
if not filledForm.is_valid():
raise Exception("Month form was invalid")
monthForm = filledForm
args = {
'monthForm': monthForm
}
return render(request, 'month.html', 'args')
<!-- month.html -->
{% extends 'base.html' %}
{% block content %}
<h2>Month</h2>
<form action="{% url '...' %}" method="post">
{% csrf_token %}
{{ monthForm }}
<input type="submit" name="..." value="Show">
</form>
{% endblock %}
К сожалению, я продолжаю получать ошибку 'str' object has no attribute 'get_bound_field'
. Я совершенно уверен, что это происходит потому, что я не должен присваивать 'JULY' в self.fields['month']
внутри конструктора формы. Но я не могу найти другого решения.