Hello,
I am consistently getting this bizarre error and formset_invalid is getting
triggered.
I just tried to make a generic ListFormSetView.
[11/Jun/2021 12:48:24] "GET /adminuser/print-report/?page=1 HTTP/1.1" 200
5244
[{'PAN_ID': ['User with this Pan ID already exists.']}]
[11/Jun/2021 12:59:29] "POST /adminuser/print-report/?page=2 HTTP/1.1" 200
5250
In my model the USERNAME_FIELD is PAN_ID.
Webpage looks like this
https://ibb.co/CHT4nKB
Code:
class PrintStatementView(ListFormSetView):
paginate_by = 1
model = User
form_class = PrintReportModelForm
template_name = "adminuser/printstatement.html"
context_formset_name = "formset"
ordering = ("PAN_ID",)
def get_factory_object(self):
return modelformset_factory(
self.model,
form=self.form_class,
extra=0,
)
def formset_valid(self, formset):
self.request.session.setdefault("to_download", [])
self.request.session["to_download"][self.kwargs["page"]] = [
x["PAN_ID"]
for x in formset.cleaned_data
if x["print_report_check"]
]
return HttpResponseRedirect(
f"{reverse('print-report')}?page={self.kwargs['page']}"
)
def get_success_url(self):
return reverse("adminuser:trading-window-list")
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))
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/3e032b7e-2999-4d62-a1d9-e8365e7a037dn%40googlegroups.com.