Ticket #4667: 4667-added-custom-formset.diff
| File 4667-added-custom-formset.diff, 3.9 kB (added by Honza_Kral, 10 months ago) |
|---|
-
a/django/contrib/admin/options.py
old new 1 1 from django import oldforms, template 2 2 from django import newforms as forms 3 3 from django.newforms.formsets import all_valid 4 from django.contrib.contenttypes.models import ContentType5 4 from django.contrib.admin import widgets 6 5 from django.contrib.admin.util import get_deleted_objects 7 6 from django.core.exceptions import ImproperlyConfigured, PermissionDenied … … 451 450 return HttpResponseRedirect("../") 452 451 453 452 def render_change_form(self, model, context, add=False, change=False, form_url=''): 453 from django.contrib.contenttypes.models import ContentType 454 454 opts = model._meta 455 455 app_label = opts.app_label 456 456 ordered_objects = opts.get_ordered_objects() … … 721 721 template = None 722 722 verbose_name = None 723 723 verbose_name_plural = None 724 formset = None 724 725 725 726 def __init__(self, parent_model, admin_site): 726 727 self.admin_site = admin_site … … 738 739 fields = flatten_fieldsets(self.declared_fieldsets) 739 740 else: 740 741 fields = None 741 return forms.inline_formset(self.parent_model, self.model, fk_name=self.fk_name, fields=fields, formfield_callback=self.formfield_for_dbfield, extra=self.extra )742 return forms.inline_formset(self.parent_model, self.model, fk_name=self.fk_name, fields=fields, formfield_callback=self.formfield_for_dbfield, extra=self.extra, formset=self.formset) 742 743 743 744 def formset_change(self, request, obj): 744 745 """Returns an InlineFormSet class for use in admin change views.""" … … 746 747 fields = flatten_fieldsets(self.declared_fieldsets) 747 748 else: 748 749 fields = None 749 return forms.inline_formset(self.parent_model, self.model, fk_name=self.fk_name, fields=fields, formfield_callback=self.formfield_for_dbfield, extra=self.extra )750 return forms.inline_formset(self.parent_model, self.model, fk_name=self.fk_name, fields=fields, formfield_callback=self.formfield_for_dbfield, extra=self.extra, formset=self.formset) 750 751 751 752 def fieldsets_add(self, request): 752 753 if self.declared_fieldsets: -
a/django/newforms/models.py
old new 408 408 raise Exception("%s has more than 1 ForeignKey to %s" % (model, parent_model)) 409 409 return fk 410 410 411 def inline_formset(parent_model, model, fk_name=None, fields=None, extra=3, orderable=False, deletable=True, formfield_callback=lambda f: f.formfield() ):411 def inline_formset(parent_model, model, fk_name=None, fields=None, extra=3, orderable=False, deletable=True, formfield_callback=lambda f: f.formfield(), formset=None): 412 412 """ 413 413 Returns an ``InlineFormset`` for the given kwargs. 414 414 … … 417 417 """ 418 418 fk = get_foreign_key(parent_model, model, fk_name=fk_name) 419 419 # let the formset handle object deletion by default 420 FormSet = formset_for_model(model, formset= InlineFormset, fields=fields,420 FormSet = formset_for_model(model, formset=formset or InlineFormset, fields=fields, 421 421 formfield_callback=formfield_callback, 422 422 extra=extra, orderable=orderable, 423 423 deletable=deletable)
