Django formset не проходит валидацию, не правильно инициализируется через self.request.POST
уважаемые форумчане. Возникла проблема с формсетом. Когда приходит пост запрос, формсет созданный на основе self.request.POST не проходит валидацию.
Проверяла код из учебника, где приведен похожий пример, тоже не работает.
В чем дело? То ли баг какой-то, то ли в новой Django что-то поменялось
Имеется форма:
class RightsForm(forms.Form):
can_view = forms.BooleanField(label = 'Может просматривать',initial=False, required=False)
can_add = forms.BooleanField(label = 'Может добавлять', initial=False, required=False)
can_change = forms.BooleanField(label = 'Может изменять', initial=False, required=False)
can_edit = forms.BooleanField(label = 'Может удалять', initial=False, required=False)
ClassView:
class Rights(FormView):
template_name = 'profiles/rights.html'
form_class = RightsForm
RightsFormSet = formset_factory(form_class, extra=5)
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['formset'] = self.RightsFormSet(auto_id = True)
return context
def post(self, request, *args, **kwargs):
#вот здесь возникает проблема:
formset = self.RightsFormSet(self.request.POST)
if formset.is_valid():
...
#OK
else:
...
#всегда False
#NOT OK
шаблон:
<form method="post">
{% csrf_token %}
{{ formset.management_fоrm }}
{% for form in formset %}
<div class="card my-2 p-2">
{{form.as_p}}
</div>
{% endfor %}
<p><input type="submit" value="Сохранить"></p>
</form>