【发布时间】:2015-01-09 18:07:44
【问题描述】:
我想根据我的请求用户排除内联中的一些字段。
我知道我可以用“get_formsets”、“add_view”、“change_view”等方法来处理这个问题,但我不确定语法是什么。
有什么建议吗?
【问题讨论】:
标签: django-admin
我想根据我的请求用户排除内联中的一些字段。
我知道我可以用“get_formsets”、“add_view”、“change_view”等方法来处理这个问题,但我不确定语法是什么。
有什么建议吗?
【问题讨论】:
标签: django-admin
还有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
【讨论】:
我通过内联类中的下一个代码实现了我所需要的:
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
【讨论】: