parameters: (self, revision_view, formset)
docstring: Hacks the given formset to contain the correct initial data.
docstring_summary: Hacks the given formset to contain the correct initial data.
docstring_tokens: Hacks the given formset to contain the correct initial data .
function: def _hack_inline_formset_initial(self, revision_view, formset):
          """Hacks the given formset to contain the correct initial data."""
          # Now we hack it to push in the data from the revision!
          initial = []
          related_versions = self.get_related_versions(
              revision_view.org_obj, revision_view.version, formset)
          formset.related_versions = related_versions
          for related_obj in formset.queryset:
              if smart_text(related_obj.pk) in related_versions:
                  initial.append(
                      related_versions.pop(smart_text(related_obj.pk)).field_dict)
              else:
                  initial_data = model_to_dict(related_obj)
                  initial_data["DELETE"] = True
                  initial.append(initial_data)
          for related_version in related_versions.values():
              initial_row = related_version.field_dict
              pk_name = ContentType.objects.get_for_id(
                  related_version.content_type_id).model_class()._meta.pk.name
              del initial_row[pk_name]
              initial.append(initial_row)
          # Reconstruct the forms with the new revision data.
          formset.initial = initial
          formset.forms = [formset._construct_form(
              n) for n in xrange(len(initial))]
          # Hack the formset to force a save of everything.
  
          def get_changed_data(form):
              return [field.name for field in form.fields]
          for form in formset.forms:
              form.has_changed = lambda: True
              form._get_changed_data = partial(get_changed_data, form=form)
  
          def total_form_count_hack(count):
              return lambda: count
          formset.total_form_count = total_form_count_hack(len(initial))
  
          if self.request.method == 'GET' and formset.helper and formset.helper.layout:
              helper = formset.helper
              cls_str = str if six.PY3 else basestring
              helper.filter(cls_str).wrap(InlineDiffField)
              fake_admin_class = type(str('%s%sFakeAdmin' % (self.opts.app_label, self.opts.model_name)), (object, ), {'model': self.model})
              for form in formset.forms:
                  instance = form.instance
                  if instance.pk:
                      form.detail = self.get_view(
                          DetailAdminUtil, fake_admin_class, instance)
function_tokens: def _hack_inline_formset_initial ( self , revision_view , formset ) : # Now we hack it to push in the data from the revision! initial = [ ] related_versions = self . get_related_versions ( revision_view . org_obj , revision_view . version , formset ) formset . related_versions = related_versions for related_obj in formset . queryset : if smart_text ( related_obj . pk ) in related_versions : initial . append ( related_versions . pop ( smart_text ( related_obj . pk ) ) . field_dict ) else : initial_data = model_to_dict ( related_obj ) initial_data [ "DELETE" ] = True initial . append ( initial_data ) for related_version in related_versions . values ( ) : initial_row = related_version . field_dict pk_name = ContentType . objects . get_for_id ( related_version . content_type_id ) . model_class ( ) . _meta . pk . name del initial_row [ pk_name ] initial . append ( initial_row ) # Reconstruct the forms with the new revision data. formset . initial = initial formset . forms = [ formset . _construct_form ( n ) for n in xrange ( len ( initial ) ) ] # Hack the formset to force a save of everything. def get_changed_data ( form ) : return [ field . name for field in form . fields ] for form in formset . forms : form . has_changed = lambda : True form . _get_changed_data = partial ( get_changed_data , form = form ) def total_form_count_hack ( count ) : return lambda : count formset . total_form_count = total_form_count_hack ( len ( initial ) ) if self . request . method == 'GET' and formset . helper and formset . helper . layout : helper = formset . helper cls_str = str if six . PY3 else basestring helper . filter ( cls_str ) . wrap ( InlineDiffField ) fake_admin_class = type ( str ( '%s%sFakeAdmin' % ( self . opts . app_label , self . opts . model_name ) ) , ( object , ) , { 'model' : self . model } ) for form in formset . forms : instance = form . instance if instance . pk : form . detail = self . get_view ( DetailAdminUtil , fake_admin_class , instance )