使用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
[...]
最佳答案
可悲的是,您需要该模型(在角色内设置)的add
,change
或delete
许可权的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/