使用Wagtails Modeladmin:

是否有任何方法可以禁用编辑和删除选项,而仅保留检查 View ?

我可以想到的一种可能方法是扩展模板,删除“编辑和删除”按钮,然后以某种方式禁用编辑和删除 View 。

有没有更清洁的方法?

编辑:感谢Loic的答案,我可以弄清楚。
PermissionHelper source code对找出正确的覆盖方法也非常有帮助。

仅显示检查 View 的完整答案

class ValidationPermissionHelper(PermissionHelper):
    def user_can_list(self, user):
        return True
    def user_can_create(self, user):
        return False
    def user_can_edit_obj(self, user, obj):
        return False
    def user_can_delete_obj(self, user, obj):
        return False

class ValidationAdmin(ModelAdmin):
    model = Validation
    permission_helper_class = ValidationPermissionHelper
    inspect_view_enabled = True
    [...]

最佳答案

可悲的是,您需要该模型(在角色内设置)的addchangedelete许可权的at least one才能显示。

解决方法是为您的ModelAdmin提供custom permission helper class并始终允许列出(并且仍允许在角色内设置添加/更改/删除):

class MyPermissionHelper(wagtail.contrib.modeladmin.helpers.PermissionHelper):
    def user_can_list(self, user):
        return True  # Or any logic related to the user.

class MyModelAdmin(wagtail.contrib.modeladmin.options.ModelAdmin):
    model = MyModel
    permission_helper_class = MyPermissionHelper

modeladmin_register(wagtail.contrib.modeladmin.options.MyModelAdmin)

关于python - Wagtail ModelAdmin只读,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42820895/

10-11 06:20