如何创建管理员无法更改的模型?

时间:2019-10-03 14:01:28

标签: python django admin

我需要创建admin无法使用的Django模型,但是他应该可以看到它。 它的内容将从站点输入。 我该怎么做?

3 个答案:

答案 0 :(得分:1)

基本上,如果要禁用模型的可编辑性,则可能要使用Django Admin的权限框架,如下所示:

class PersonAdmin
    def has_change_permission(self, request, obj=None):
        # only allows superusers to edit
        return request.user.is_superuser

您可能还想尝试以下readonly_field

class PersonAdmin
    readonly_fields = ('name','sex',)

但是这样做的问题是,尽管不允许进行任何更改,但您仍会在编辑页面上看到保存按钮,

答案 1 :(得分:0)

您可以在fieldsreadonly_fields上列出所需的字段。

class AuthorAdmin(admin.ModelAdmin):
    fields = ('name', 'title')
    readonly_fields = ('name', 'title')

答案 2 :(得分:0)

指定应为只读

在模型管理员中,您可以指定某些字段不被更改。

class ProfileAdmin(admin.ModelAdmin):
    readonly_fields = ('source', 'campaign')

只需将其放在您的admin.py中,然后当您要注册站点时,请使用以下命令:

admin.site.register(Profile, ProfileAdmin)

而不是您当前正在使用的是

admin.site.register(Profile)