首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django如果field =空,设置field = 1?

Django如果field =空,设置field = 1?
EN

Stack Overflow用户
提问于 2011-02-16 11:03:43
回答 1查看 424关注 0票数 0

我可以在我的models.py或admin.py文件中使用条件语句执行以下操作吗?

代码语言:javascript
复制
if field (trying to be saved) == blank, set field = 1.

谢谢你的帮助。如果需要的话,请让我澄清一下。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-16 11:05:55

您可能希望覆盖模型上的save方法。

代码语言:javascript
复制
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

代码语言:javascript
复制
# 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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5012093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档