我正在使用Pinax-Stripe库,我想为登录用户创建一个自定义帐户。 I'm trying to rewrite the CreateCustomAccountView() as a function based view。原因是,我不明白CreateBankAccountView
来自哪里,而且无处可见in the GitHub code。
为简单起见,我有以下表格:
class Form(DynamicForm):
# some form fields
def __init__(self, *args, **kwargs):
self.request = kwargs.pop("request")
views.py
def view(request):
if request.method == 'POST':
form = Form(request.POST)
else:
form = Form()
return render(request, 'dashboard/template.html', {'form': form})
我的模板处理器中有request
。我不确定为什么会发生这种情况以及如何实例化一个空表单?
答案 0 :(得分:2)
由于您的表单会弹出request
而没有默认值
self.request = kwargs.pop("request")
您必须将请求传递给表单。例如:
if request.method == 'POST':
form = Form(request.POST, request=request)
else:
form = Form(request=request)
答案 1 :(得分:2)
您在基于类的视图中看到的问题是合法的,我想开发人员突然忽略了这部分代码。 如果您仍想使用基于类的视图,请尝试替换:
form_kwargs = super(
CreateBankAccountView, self
).get_form_kwargs(
*args, **kwargs
)
使用:
form_kwargs = super(CreateCustomAccountView, self).get_form_kwargs()
该类为CreateCustomAccountView
,get_form_kwargs()
不带参数。