I am consistently getting this bizarre error and formset_invalid is getting triggered.
I just tried to make a generic ListFormSetView.
In my model the USERNAME_FIELD is PAN_ID.
class ListFormSetView(ListView):
def get_factory_object(self):
return NotImplementedError(" Implement yourself ")
def get_context_data(self, *, object_list=None, **kwargs):
context_formset_name = (
getattr(self, "context_formset_name", None) or "formset"
)
context_data = super().get_context_data(**kwargs)
object_list = context_data["object_list"]
context_data[context_formset_name] = self.get_factory_object()(
queryset=object_list, initial=self.get_initial(object_list)
)
return context_data
def get_form_kwargs(self):
context_data = super().get_context_data()
object_list = context_data["object_list"]
kwargs = {
"initial": self.get_initial(object_list),
"queryset": object_list,
}
if self.request.method in ("POST", "PUT"):
kwargs.update(
{
"data": self.request.POST,
"files": self.request.FILES,
}
)
return kwargs
def get_initial(self, queryset=[]):
""" Generate the initial data for the paginated queryset for the current page"""
try:
return self.initial
except AttributeError:
data = serializers.serialize("json", queryset)
data = json.loads(data)
return data
def post(self, request, *args, **kwargs):
self.object_list = self.get_queryset()
formset = self.get_factory_object()(**self.get_form_kwargs())
if formset.is_valid():
return self.formset_valid(formset)
else:
return self.formset_invalid(formset)
def formset_valid(self, formset):
return HttpResponseRedirect(self.get_success_url())
def formset_invalid(self, formset):
print(formset.errors)
return self.render_to_response(self.get_context_data(formset=formset))