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.