我的forms.py中有一个CustomForm需要URL的公钥。我是说,例如/book/<pk>/create
。
在我的views.py中有这个CreateView:
class CustomCreateView(CreateView):
form_class = CustomForm
现在我的问题是我如何将URL的公钥传递给CustomForm。 CustomForm需要一个名为pk
的关键字参数。
我认为get_form()方法可以提供帮助,但我不确定并且不知道如何使用它:
答案 0 :(得分:1)
尝试这样的事情:
在您看来:
class CustomCreateView(CreateView):
form_class = CustomForm
def get_form_kwargs(self, *args, **kwargs):
kwargs = super(CustomCreateView, self).get_form_kwargs(*args, **kwargs)
kwargs['pk'] = self.kwargs['pk']
return kwargs
以自定义形式:
def __init__(self, *args, **kwargs):
self.pk = kwargs.pop('pk', None)
super(CustomForm, self).__init__(*args, **kwargs)