将参数传递给RegistrationView的form_class

时间:2014-09-21 01:37:32

标签: python django django-forms django-views

我尝试将自定义参数传递给名为' 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')

1 个答案:

答案 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)