django:如何为模型管理挂钩保存按钮?

发布于 2024-09-18 07:59:27 字数 74 浏览 5 评论 0原文

我有一个带有“状态”字段的模型。当用户使用管理应用程序修改实例时,如何单击“保存”按钮,以便将“状态”更新为依赖于登录用户用户名的值?

I have a Model with a "status" field. When the user users the Admin app to modify an instance, how to I hook onto the "Save" button click so that I could update "status" to a value that's dependent on the logged in user's username?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

若相惜即相离 2024-09-25 07:59:27

覆盖 modeladmin 的 save_model 方法:

class ModelAdmin(admin.ModelAdmin):       
    def save_model(self, request, obj, form, change):
        user = request.user 
        instance = form.save(commit=False)
        if not change:    # new object
            instance.status = ....
        else:             # updated old object
            instance.status = ...
        instance.save()
        form.save_m2m()
        return instance

Override your modeladmin's save_model-method:

class ModelAdmin(admin.ModelAdmin):       
    def save_model(self, request, obj, form, change):
        user = request.user 
        instance = form.save(commit=False)
        if not change:    # new object
            instance.status = ....
        else:             # updated old object
            instance.status = ...
        instance.save()
        form.save_m2m()
        return instance
℡寂寞咖啡 2024-09-25 07:59:27

使用 pre_save信号。当然,它会在每个实例保存操作中被调用,不仅来自管理员,而且它确实适用于您的情况。

Use the pre_save signal. Granted, it will be called on every instance save operation, not only from admin, but it does apply to your situation.

2024-09-25 07:59:27

ModelAdmin.save_model() 提供了我所需要的

ModelAdmin.save_model() provides just what I need

青丝拂面 2024-09-25 07:59:27
form.cleaned_data.get('categories')

这直接在ModelAdmin.save_model中获取值

form.cleaned_data.get('categories')

This gets the value directly in the ModelAdmin.save_model

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文