我想根据请求用户排除内联中的某些字段。
我知道我可以通过'get_formsets','add_view','change_view'等方法处理这个问题,但我不确定语法是什么。
有什么建议吗?
答案 0 :(得分:3)
我使用内联类中的下一个代码实现了我所需要的:
def get_formset(self, request, obj=None, **kwargs):
if request.user.groups.all().count() > 0:
if request.user.groups.all()[0].name == 'User Group Name':
kwargs['exclude'] = ['field_to_exclude',]
return super(MyInline, self).get_formset(request, obj, **kwargs)
这个问题的答案给了我提示:different fields for add and change pages in admin
答案 1 :(得分:0)
还有 get_exclude
钩子:
class FoodInline(TabularInline):
model = Food
def get_exclude(self, request, obj=None):
group = request.user.groups.first()
if group and group.name == 'User Group Name':
return ['field_to_exclude', ]
return self.exclude