python - Django admin - 使所有字段只读

标签 python django django-admin

我正在尝试将所有字段设为只读而不明确列出它们。

类似:

class CustomAdmin(admin.ModelAdmin):
    def get_readonly_fields(self, request, obj=None):
        if request.user.is_superuser:
            return self.readonly_fields

        return self.fields

问题是CustomAdmin.fields此时没有设置。

有什么想法吗?

最佳答案

从 django 2.1 开始,您可以通过从 ModelAdminhas_change_permission 方法返回 False 来阻止编辑,同时允许查看,如下所示:

class CustomAdmin(admin.ModelAdmin):
    def has_change_permission(self, request, obj=None):
        return False

(这在 django 2.1 之前不起作用,因为它还会拒绝任何仅尝试查看的用户的权限。)

关于python - Django admin - 使所有字段只读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13817525/

相关文章:

python - 用函数的结果替换值

python - 使用 Parler 在 Django 管理界面中创建自定义表单

django - 为什么我无法在 ModelForm 的 save() 函数中设置 OneToOneField?

python - PyQt - 更新模型时自动刷新自定义 View ?

python - requests.exceptions.ConnectionError : ('Connection aborted.' , gaierror(8, 'nodename nor servname provided, or not known' ))

python - matplotlib 中无效的 rgba arg "#"

python - 隐藏 Heroku Django 部署的 settings.py 密码

django - 如何针对特定数据库进行测试

python - 在 Django >= 1.5 中引用用户模型的最佳方式

管理中的 Django 模型 pre_save 验证