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 django-users+unsubscr...@googlegroups.com.
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