Django

Code

Changeset 8266

Show
Ignore:
Timestamp:
08/09/08 12:12:48 (1 year ago)
Author:
jacob
Message:

Added ModelAdmin?.save_model() and ModelAdmin?.save_formset() methods to allow for easier modification of objects/inlines at admin-save time. Refs #6002.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/contrib/admin/options.py

    r8265 r8266  
    453453        request.user.message_set.create(message=message) 
    454454 
     455    def save_model(self, request, form, change): 
     456        """ 
     457        Save and return a model given a ModelForm. ``change`` is True if the 
     458        object is being changed, and False if it's being added. 
     459        """ 
     460        return form.save(commit=True) 
     461 
     462    def save_formset(self, request, form, formset, change): 
     463        """ 
     464        Save an inline formset attached to the object. 
     465        """ 
     466        formset.save() 
     467 
    455468    def save_add(self, request, form, formsets, post_url_continue): 
    456469        """ 
     
    460473        """ 
    461474        opts = self.model._meta 
    462         new_object = form.save(commit=True) 
    463  
     475         
     476        new_object = self.save_model(request, form, change=False) 
    464477        if formsets: 
    465478            for formset in formsets: 
    466                 # HACK: it seems like the parent obejct should be passed into 
    467                 # a method of something, not just set as an attribute 
    468479                formset.instance = new_object 
    469                 formset.save(
     480                self.save_formset(request, form, formset, change=False
    470481 
    471482        pk_value = new_object._get_pk_val() 
     
    510521        """ 
    511522        opts = self.model._meta 
    512         new_object = form.save(commit=True) 
     523        new_object = self.save_model(request, form, change=True) 
    513524        pk_value = new_object._get_pk_val() 
    514525 
    515526        if formsets: 
    516527            for formset in formsets: 
    517                 formset.save(
     528                self.save_formset(request, form, formset, change=True
    518529         
    519530        change_message = self.construct_change_message(request, form, formsets)