如何在管理界面中使模型完全只读?它是一种日志表,我使用管理功能来搜索、排序、过滤等,但不需要修改日志。
如果这看起来像重复的,这里是not我正在尝试做什么:
- 我不是在寻找只读fields(即使将每个字段设为只读,您仍然可以创建新记录)
- 我不想创建只读user:每个用户都应该是只读的。
管理员用于编辑,而不仅仅是查看(您不会找到“查看”权限)。为了实现你想要的,你必须禁止添加、删除并将所有字段设为只读:
class MyAdmin(ModelAdmin):
def has_add_permission(self, request, obj=None):
return False
def has_delete_permission(self, request, obj=None):
return False
(如果你禁止改变,你甚至看不到这些物体)
对于一些尝试自动将所有字段设置为只读的未经测试的代码,请参阅我的回答整个模型为只读 https://stackoverflow.com/questions/7920371/whole-model-as-read-only/7965193#7965193
编辑:这使得所有字段只读:
readonly_fields = [field.name for field in MyModel._meta.get_fields()]
编辑:QuerySet.delete() 仍可能批量删除对象。为了解决这个问题,请提供您自己的“对象”管理器和相应的不会删除的 QuerySet 子类 - 请参阅在 Django 中重写 QuerySet.delete() https://stackoverflow.com/questions/6459616/overriding-queryset-delete-in-django/6459797#6459797
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)