In line 58  you can see me adding  "print_report_check":True,   

my form

class PrintReportModelForm(ModelForm):
    print_report_check = forms.BooleanField(widget=forms.CheckboxInput(), 
required=False)
    class Meta:
        fields = ["PAN_ID", "print_report_check"]
        model = User
        widgets = {"PAN_ID": forms.HiddenInput()}
    
    def __init__(self,*args, **kwargs): 
        super().__init__(*args, **kwargs)   
        self.fields["PAN_ID"].disabled = True
     #   self.fields["print_report_check"].initial = True

    def save(self, commit=True):
        logger.info(" Method not meant to save anything ")
        pass

On Monday, June 14, 2021 at 12:09:49 AM UTC+5:30 VISHESH MANGLA wrote:

> 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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/5e95b909-3b25-4e28-a9aa-292dc09c2d59n%40googlegroups.com.

Reply via email to