Django管理面板中特定字段的权限
我在Django中有一个模型,我想从管理面板向它添加实例 我有几个用户可以访问管理面板来创建模型的新帖子,我有两个问题:Django管理面板中特定字段的权限,django,django-models,django-templates,django-admin,Django,Django Models,Django Templates,Django Admin,我在Django中有一个模型,我想从管理面板向它添加实例 我有几个用户可以访问管理面板来创建模型的新帖子,我有两个问题: 可以检测面板中的开关用户,以自动检测“作者”字段?(参见图中的红色矩形) 我是否可以禁用特定用户的选项以将“已发布”字段标记为true?(参见图中的绿色矩形) 对于预填充字段,您可以覆盖方法: 对于禁用字段,您可以覆盖。。。以及: 您可能还需要重写以从可更改字段列表中删除已发布的 def get_form(self, request, obj=None, **kwargs):
对于预填充字段,您可以覆盖方法: 对于禁用字段,您可以覆盖。。。以及: 您可能还需要重写以从可更改字段列表中删除
已发布的
def get_form(self, request, obj=None, **kwargs):
form = super().get_form(request, obj, **kwargs)
form.base_fields['author'].initial = request.user
return form
class YourModelAdmin(admin.ModelAdmin):
readonly_fields = ('whatever', ) # whatever fields you have by default
limited_fiels = ('published', )
def get_readonly_fields(self, request, obj=None):
if request.user.groups.filter(name='YourPermissionGroupName').exists():
return self.limited_fiels
return super().get_fieldsets(request, obj=obj)