将参数传递给FormView Django中的表单
Posted
技术标签:
【中文标题】将参数传递给FormView Django中的表单【英文标题】:passing a parameter to a form in FormView Django 【发布时间】:2018-12-11 19:22:53 【问题描述】:我有一个名为MyForm
的表单。我覆盖了__init__()
方法。
现在我在MyFormView
中创建这个表单时需要传递request.user
参数。
我想这样做:
class MyFormView(FormView):
form_class = MyForm(request.user)
我是否必须覆盖视图的__init__
方法?如果有,怎么做?
【问题讨论】:
查看get_form_kwargs
【参考方案1】:
def get_form_kwargs(self):
kwargs = super(MyFormView, self).get_form_kwargs()
data = kwargs['data'].copy() # convert it to a mutable
data['user'] = self.request.user
kwargs['data'] = data
return kwargs
【讨论】:
请添加几句话来解释您的代码在做什么,以便您的回答获得更多的支持。【参考方案2】:覆盖视图的get_form_kwargs
方法:
class MyFormView(FormView):
form_class = MyForm
def get_form_kwargs(self):
kwargs = super(MyFormView, self).get_form_kwargs()
kwargs['user'] = self.request.user
return kwargs
【讨论】:
太快了,我无法在 10 分钟之前接受您的回答 xD,谢谢先生!以上是关于将参数传递给FormView Django中的表单的主要内容,如果未能解决你的问题,请参考以下文章
如何将额外的参数传递给 django admin 自定义表单?
Django 将自定义表单参数传递给 ModelFormset