我试图自定义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?
答案 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。