我需要创建admin无法使用的Django模型,但是他应该可以看到它。 它的内容将从站点输入。 我该怎么做?
答案 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)
您可以在fields
和readonly_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)