当Django的自定义操作不符合预期时,如何通知用户?

2024-04-23 14:39:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为django管理编写一个自定义操作。此操作只适用于具有特定状态的记录。在

例如,“Approve Blog”自定义操作应该只在Blog未被批准时才批准用户Blog。而且它一定不能拒绝博客。在

一种选择是过滤未经批准的博客,然后批准它们。但是被拒绝的博客仍然有可能被批准。在

如果用户试图批准被拒绝的博客,自定义操作应该通知用户django管理中的无效操作。在

有什么解决办法吗?在


Tags: django用户状态记录blogapprove解决办法
1条回答
网友
1楼 · 发布于 2024-04-23 14:39:48

关于管理操作的文档非常有帮助,所以开始take a look!在

我认为写一个只更新未被拒绝的博客应该做的事。在

下面的代码假设您有变量rejectedapproved,它们分别映射到表示已被拒绝的博客和已批准的博客的积分值:

class BlogAdmin(admin.ModelAdmin):

    ...
    actions = ['approve']
    ...

    def approve(self, request, queryset):
        rejects = queryset.filter(state = rejected)
        if len(rejects) != 0:
            # You might want to raise an exception here, or notify yourself somehow
            self.message_user(request,
                              "%s of the blogs you selected were already rejected." % len(rejects))
            return

        rows_updated = queryset.update(state = approved)
        self.message_user(request, "%s blogs approved." % rows_updated)
    approve.short_description = "Mark selected blogs as approved"

相关问题 更多 >