drango-allauth无法覆盖Signup和Signin表单

时间:2016-08-16 16:53:33

标签: twitter-bootstrap customization django-allauth

我试图自定义AllAuth界面。 我可以单独覆盖LoginForm和SignupForm,但如果我覆盖它们,我收到了这个错误:

Module "app.forms" does not define a "BootstrapSignupForm" class

我的表格:

class BootstrapLoginForm(LoginForm):
     def __init__(self, *args, **kwargs):
        super(BootstrapLoginForm, self).__init__(*args, **kwargs)
        self.fields['login'].widget.attrs['class'] = 'form-control';
        self.fields['login'].widget.attrs['placeholder'] = 'User name';

        self.fields['password'].widget.attrs['class'] = 'form-control';
        self.fields['password'].widget.attrs['placeholder'] = 'Password';

class BootstrapSignupForm(SignupForm):
     def __init__(self, *args, **kwargs):
        super(BootstrapSignupForm, self).__init__(*args, **kwargs)
        self.fields['username'].widget.attrs['class'] = 'form-control';
        self.fields['username'].widget.attrs['placeholder'] = 'user name';

我的settings.py

ACCOUNT_FORMS = {'login': 'app.forms.BootstrapLoginForm'}
ACCOUNT_SIGNUP_FORM_CLASS = 'app.forms.BootstrapSignupForm'

但如果我只保留其中一个,那就有效了。 为什么不可能同时覆盖许多allauth表单?有解决方法吗?改变AllAuth主题的googd实践是什么?有没有简单的方法来设置bootstrap?

1 个答案:

答案 0 :(得分:1)

if (response.IsSuccessStatusCode) { var result = response.Content.ReadAsStringAsync().Result; } 表示一个表单,其中包含一些添加到注册表单的其他字段。因此,它实际上并没有取代真正的注册表单,它的字段只会被合并到其中。

如果您真的想要替换实际表单,那么您确实应该使用ACCOUNT_SIGNUP_FORM_CLASS。只需在其中添加注册密钥即可。请注意,还有一个ACCOUNT_FORMS可以照顾......

有关SOCIALACCOUNT_FORMS的详细信息,请参阅How to customize user profile when using django-allauth