我正在尝试使用 RegistrationView 类将自定义参数传递到名为“RegistrationForm”的表单。
但是,当我执行以下操作时,我只是收到错误:
TypeError at /accounts/register/
'RegistrationForm' object is not callable
我猜这是因为我创建了一个对象,并且我不只是将类名传递给 RegistrationView。
有什么办法可以实现这个目标吗?
url.py
url(r'^register/$',
RegistrationViewBillingSecret.as_view(template_name='registration/registration_form.html'),
name='registration_register'),
View .py
from registration.backends.default.views import RegistrationView
class RegistrationViewBillingSecret(RegistrationView):
form_class = RegistrationForm(billing_secret='somestring')
最佳答案
我似乎有这种能力,只有在提出问题后才能弄清楚如何解决问题。
这是我为接受 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)
关于python - 将参数传递给 RegistrationView 的 form_class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25954941/