Как правильно присвоить значение полю выбора в 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'] внутри конструктора формы. Но я не могу найти другого решения.

Вернуться на верх