Django:如何以管理表单获取当前用户
在Django的ModelAdmin中,我需要显示根据用户拥有的权限定制的表单。有没有一种方法可以将当前用户对象放入表单类,以便我可以在其__init__
方法中自定义表单?
我认为将当前请求保存在线程本地中是一种可能,但这是我的最后选择,我认为这是一种不良的设计方法…。
回答:
这是我最近为Blog做的事情:
class BlogPostAdmin(admin.ModelAdmin): form = BlogPostForm
def get_form(self, request, **kwargs):
form = super(BlogPostAdmin, self).get_form(request, **kwargs)
form.current_user = request.user
return form
现在,我可以forms.ModelForm
通过访问self.current_user
编辑:这是一个老答案,最近看一下,我意识到该get_form方法应该修改为:
def get_form(self, request, *args, **kwargs): form = super(BlogPostAdmin, self).get_form(request, *args, **kwargs)
form.current_user = request.user
return form
(请注意*args
)
以上是 Django:如何以管理表单获取当前用户 的全部内容, 来源链接: utcz.com/qa/427434.html