2011-02-16 62 views

回答

1

您想覆蓋模型上的保存方法。

def save(self, *args, **kwargs): 
    # this is your model "trying" to be saved, before the "real" 
    # save is called by super below 

    if self.field == 'blank': 
     self.field = 1 
    super(MyModel, self).save(*args, **kwargs) 

http://docs.djangoproject.com/en/dev/topics/db/models/#overriding-predefined-model-methods

如果你想做到這一點在你的admin.py(所以管理的具體行爲,而不是全局模型的行爲),你會想你的ModelAdmin

# code mostly from docs 
class ArticleAdmin(admin.ModelAdmin): 
    def save_model(self, request, obj, form, change): 
     if obj.field == 'blank': 
      obj.field = 1 
     obj.save() 
覆蓋 save_model

http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_model