我在管理员面板中使用字段集来分组/标题我的相关字段。 这在超级用户中很有用。当我以工作人员身份登录时,排除了一些字段,我收到错误。
渲染时出现KeyError:在表单中找不到键'A'
在下面的简单示例中,如果我是超级用户,那么一切都很棒。 如果我以员工用户身份登录,那么代码排除了我得到的字段集 错误:
models.py:
class Cars(models.Model):
A = models.CharField('A',...)
B =模型....
C =模型......
D =模型......
admin.py:
类CarsAdmin(admin.ModelAdmin):
fieldsets =(_('first group'},{'fields'sad('A','B'),('C','D'),)})
def get_form(self,request,obj = None,** kwargs):
self.exclude = []
如果不是request.user.is_superuser:
self.exclude.append( 'A')
return super(CarAdmin,self).get_form(request,obj = None,** kwargs)
底线是我想维持字段集提供的分组
有谁知道如何有条件地设置字段集?
答案 0 :(得分:0)
将A
字段添加到self.fieldsets
时,您需要从self.exclude
中移除{{1}}字段。