in line 38 i have that print statement, it's output is at the top , I dont 
know why that initial data is not going into that model formset.
actually one data the PAN_ID actually went into the modelform, but the 
checkbox's "checked" didnt. You can see the html of the formset and the 
checkbox field doesnt has a checked. 


Code in paste  
https://bpa.st/FOUQ

GET 
 <input type="hidden" name="form-TOTAL_FORMS" value="1" 
id="id_form-TOTAL_FORMS"><input type="hidden" name="form-INITIAL_FORMS" 
value="1" id="id_form-INITIAL_FORMS"><input type="hidden" 
name="form-MIN_NUM_FORMS" value="0" id="id_form-MIN_NUM_FORMS"><input 
type="hidden" name="form-MAX_NUM_FORMS" value="1000" 
id="id_form-MAX_NUM_FORMS">
<tr><th><label for="id_form-0-print_report_check">Print report 
check:</label></th><td><input type="checkbox" 
name="form-0-print_report_check" id="id_form-0-print_report_check"><input 
type="hidden" name="form-0-PAN_ID" value="10012000" disabled 
id="id_form-0-PAN_ID"></td></tr> 
 [{'PAN_ID': '10012000', 'print_report_check': True}]






class ListFormSetView(ListView):
    context_formset_name = "formset"


    def get_factory_object(self):

        return modelformset_factory(
            self.model,
            form=self.form_class,
            extra=0,
        )
        
    def get_context_data(self, *, object_list=None, **kwargs):

        context_formset_name = getattr(
            self, "context_formset_name") 

        context_data = super().get_context_data(**kwargs)
        

        object_list = context_data["object_list"]

        initial_data = self.get_initial(object_list)
        context_data[context_formset_name] = self.get_factory_object()(
            queryset=object_list, initial=initial_data
        )
        
        print(self.request.method , "\n", 
context_data[context_formset_name], "\n" ,initial_data )

        return context_data

    def get_initial(self, queryset=None):
        """Generate the initial data for the paginated queryset for the 
current page"""

        if queryset is None:
            queryset = []

        try:
            return self.initial
        except AttributeError:

            data = [
                {**{
                    field_name: getattr(item, field_name)
                    for field_name in self.form_class._meta.fields
                    if hasattr(item, field_name)
                }, "print_report_check":True}
                for item in queryset
            ]

            if self.request.method == "GET":
                try:
                    userids_for_checked_boxes = 
PrintStatementData["to_download"][
                        
PrintStatementData["list-formset-view_previous-page"]
                    ]
                except KeyError:
                    pass
                else:
                    for i in data:
                        if i["PAN_ID"] in userids_for_checked_boxes:
                            i["print_report_check"] = True

            return data

    def get_formset_for_previous_page(self):
        """Set the `page_kwarg` 's  value to the previous page's value 
because
        the formset's data needs to be compared to the previous page's data.
        The `paginate_queryset` method uses self.kwargs["page_kwarg"]
        to get the queryset corresponding to a page.So just to get the
        initial data corresponding to the previous page through 
`self.get_form_kwargs` we first need to do this."""

        PrintStatementData[
            "list-formset-view_current-page"] = int(self.request.GET.get(
                self.page_kwarg))

        self.kwargs[self.page_kwarg] = PrintStatementData.get(
            "list-formset-view_previous-page")

        formset = self.get_factory_object()(**self.get_form_kwargs())

        self.kwargs[self.page_kwarg] = PrintStatementData.get(
            "list-formset-view_current-page")

        return 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 django-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/f38a5d27-34bb-4346-ad0c-6ad564a55002n%40googlegroups.com.

Reply via email to