删除时更改Djangoadmin中的默认消息

2024-09-29 23:23:34 发布

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

我有一个模型,用户可以在其中添加一些数据,并将这些数据分配给特定的月份。但是,如果该用户已经添加了一些项目,并试图删除分配给上个月的特定数据,则应将其锁定

我成功地做到了这一点,但我现在的问题是给用户的消息。我想删除默认消息的删除按钮的管理,但直到现在没有成功

下面是问题的图像:MessageImage

管理员

class MontlyReleaseAdmin(admin.ModelAdmin):
    form = MontlyReleaseForm

    def get_actions(self, request):
        actions = super().get_actions(request)
        if 'delete_selected' in actions:
            del actions['delete_selected']
        return actions


    def delete_model(self, request, obj):
        if not is_valid_date(obj):
            messages.add_message(request, messages.ERROR, 'Not Deleted')
        else:
            super().delete_model(request, obj)

    admin.site.register(MontlyRelease, MontlyReleaseAdmin)

Tags: 数据用户selfactionsobj消息getif
1条回答
网友
1楼 · 发布于 2024-09-29 23:23:34

您可以覆盖^{} method [Django-doc]以防止删除:

class MontlyReleaseAdmin(admin.ModelAdmin):
    
    # …
    
    def has_delete_permission(self, request, obj=None):
        if not is_valid_date(obj):
            messages.add_message(request, messages.ERROR, 'Not Deleted')
            return False
        return super().has_delete_permission(request, obj)

因此,这里不重写delete_model(…)方法本身,而是检查是否可以删除对象的方法

相关问题 更多 >

    热门问题