我尝试将自定义参数传递给名为' RegistrationForm'使用RegistrationView类。
但是,当我执行以下操作时,我收到错误:
TypeError at /accounts/register/
'RegistrationForm' object is not callable
我猜这是因为我创建了一个对象而且我不只是将类名传递给RegistrationView。
有什么方法可以实现这个目标吗?
urls.py
url(r'^register/$',
RegistrationViewBillingSecret.as_view(template_name='registration/registration_form.html'),
name='registration_register'),
views.py
from registration.backends.default.views import RegistrationView
class RegistrationViewBillingSecret(RegistrationView):
form_class = RegistrationForm(billing_secret='somestring')
答案 0 :(得分:1)
我似乎有能力在我提出问题后才弄清楚如何解决问题。
以下是我接受form_class和RegistrationView子类的参数。
class RegistrationViewBillingSecret(RegistrationView):
form_class = RegistrationForm
billing_secret = None
def get_form_kwargs(self):
kwargs = super(RegistrationViewBillingSecret, self).get_form_kwargs()
kwargs.update({'billing_secret': self.billing_secret})
return kwargs
def __init__(self, *args, **kwargs):
self.billing_secret = kwargs.pop('billing_secret', None)