我可以在我的models.py或admin.py文件中使用条件语句执行以下操作吗?
if field (trying to be saved) == blank, set field = 1.谢谢你的帮助。如果需要的话,请让我澄清一下。
发布于 2011-02-16 11:05:55
您可能希望覆盖模型上的save方法。
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上覆盖save_model
# 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()http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_model
https://stackoverflow.com/questions/5012093
复制相似问题