1
0
mirror of https://github.com/django/django.git synced 2025-07-04 17:59:13 +00:00

Added form_add and form_change methods to ModelAdmin.

git-svn-id: http://code.djangoproject.com/svn/django/branches/newforms-admin@6100 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Joseph Kocherhans 2007-09-12 01:29:41 +00:00
parent 4046a61793
commit 35be27874b

View File

@ -309,6 +309,20 @@ class ModelAdmin(BaseModelAdmin):
""" """
return self.queryset(request) return self.queryset(request)
def form_add(self, request):
"""
Returns a Form class for use in the admin add view.
"""
fields = flatten_fieldsets(self.fieldsets_add(request))
return forms.form_for_model(self.model, fields=fields, formfield_callback=self.formfield_for_dbfield)
def form_change(self, request, obj):
"""
Returns a Form class for use in the admin change view.
"""
fields = flatten_fieldsets(self.fieldsets_change(request, obj))
return forms.form_for_instance(obj, fields=fields, formfield_callback=self.formfield_for_dbfield)
def save_add(self, request, model, form, formsets, post_url_continue): def save_add(self, request, model, form, formsets, post_url_continue):
""" """
Saves the object in the "add" stage and returns an HttpResponseRedirect. Saves the object in the "add" stage and returns an HttpResponseRedirect.
@ -423,9 +437,7 @@ class ModelAdmin(BaseModelAdmin):
# Object list will give 'Permission Denied', so go back to admin home # Object list will give 'Permission Denied', so go back to admin home
post_url = '../../../' post_url = '../../../'
fields = flatten_fieldsets(self.fieldsets_add(request)) ModelForm = self.form_add(request)
ModelForm = forms.form_for_model(model, fields=fields, formfield_callback=self.formfield_for_dbfield)
inline_formsets = [] inline_formsets = []
if request.method == 'POST': if request.method == 'POST':
form = ModelForm(request.POST, request.FILES) form = ModelForm(request.POST, request.FILES)
@ -485,9 +497,7 @@ class ModelAdmin(BaseModelAdmin):
if request.POST and request.POST.has_key("_saveasnew"): if request.POST and request.POST.has_key("_saveasnew"):
return self.add_view(request, form_url='../../add/') return self.add_view(request, form_url='../../add/')
fields = flatten_fieldsets(self.fieldsets_change(request, obj)) ModelForm = self.form_change(request, obj)
ModelForm = forms.form_for_instance(obj, fields=fields, formfield_callback=self.formfield_for_dbfield)
inline_formsets = [] inline_formsets = []
if request.method == 'POST': if request.method == 'POST':
form = ModelForm(request.POST, request.FILES) form = ModelForm(request.POST, request.FILES)