django-allauth-覆盖默认注册表单

softzer0

我在allauth的自定义注册表单中使用了以下代码(在forms.py中):

class RegistrationForm(UserCreationForm):
    birth_date = forms.DateField(widget=extras.SelectDateWidget(years=BIRTH_DATE_YEARS))

    class Meta:
        model = get_user_model()
        fields = ('username', 'email', 'password1', 'password2', 'first_name', 'last_name', 'gender', 'birth_date', 'city', 'country')

我当然ACCOUNT_SIGNUP_FORM_CLASS在settings.py中指定了指向此表单的信息,它显示了我放入其中的字段。但是,即使我放置signup方法,它也永远不会被调用,因此它对提交不起作用我尝试使用,save但仍然是相同的-会产生一个错误,即在创建用户并将其保存到数据库时,我自定义添加的字段之一为空。那么,实现此目标的正确代码是什么?

softzer0

感谢@rakwen在这里找到了正确的解决方案我编写了自定义适配器,并将其放在应用程序的adapters.py中:

from allauth.account.adapter import DefaultAccountAdapter

class AccountAdapter(DefaultAccountAdapter):
    def save_user(self, request, user, form, commit=False):
        data = form.cleaned_data
        user.username = data['username']
        user.email = data['email']
        user.first_name = data['first_name']
        user.last_name = data['last_name']
        user.gender = data['gender']
        user.birth_date = data['birth_date']
        user.city = data['city']
        user.country = data['country']
        if 'password1' in data:
            user.set_password(data['password1'])
        else:
            user.set_unusable_password()
        self.populate_username(request, user)
        if commit:
            user.save()
        return user

然后,我ACCOUNT_ADAPTER在settings.py中指定指向该适配器,它终于开始工作了!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

django主页上的allauth登录和注册表单

来自分类Dev

Django-Allauth:注册表单中的可选字段

来自分类Dev

django-allauth注册表单中用户的外部模型

来自分类Dev

覆盖django-allauth默认格式

来自分类Dev

覆盖django-allauth默认格式

来自分类Dev

如何使用Django-AllAuth在/ accounts /网址模式之外使用注册表单?

来自分类Dev

自定义django-allauth的社交帐户注册表单

来自分类Dev

django allauth自定义注册表单以分配不同的组

来自分类Dev

自定义django-allauth的社交帐户注册表单

来自分类Dev

使用django-allauth的多个注册,注册表

来自分类Dev

覆盖 django-rest-auth 或 django-allauth 的注册功能

来自分类Dev

如何覆盖Django-Registration版本1.0中的默认注册表单?

来自分类Dev

如何覆盖Django-Registration版本1.0中的默认注册表单?

来自分类Dev

如何为django-allauth登录/注册默认表单赋予样式?

来自分类Dev

如何为django-allauth登录/注册默认表单赋予样式?

来自分类Dev

使用ACCOUNT_FORMS覆盖Django allauth登录表单

来自分类Dev

使用Django Allauth注册Facebook用户

来自分类Dev

Django allauth注册视图无法正常工作

来自分类Dev

如何编辑django-allauth默认模板?

来自分类Dev

通过社交网站注册时如何跳过django-allauth提出的用户注册表格?

来自分类Dev

通过社交网站注册时如何跳过django-allauth提出的用户注册表格?

来自分类Dev

如何发布到allauth注册表单以填写初始数据?

来自分类Dev

覆盖Django allauth注册“下一个”重定向URL

来自分类Dev

Django Allauth错误:“'socialaccount'不是注册的标记库”

来自分类Dev

Django AllAuth-登录/注册后保存会话数据

来自分类Dev

如何在django-allauth的社交帐户注册流程中显示自定义表单

来自分类Dev

将参数传递给Django / Allauth中的覆盖视图

来自分类Dev

测试Django allauth

来自分类Dev

Django allauth允许的网址

Related 相关文章

  1. 1

    django主页上的allauth登录和注册表单

  2. 2

    Django-Allauth:注册表单中的可选字段

  3. 3

    django-allauth注册表单中用户的外部模型

  4. 4

    覆盖django-allauth默认格式

  5. 5

    覆盖django-allauth默认格式

  6. 6

    如何使用Django-AllAuth在/ accounts /网址模式之外使用注册表单?

  7. 7

    自定义django-allauth的社交帐户注册表单

  8. 8

    django allauth自定义注册表单以分配不同的组

  9. 9

    自定义django-allauth的社交帐户注册表单

  10. 10

    使用django-allauth的多个注册,注册表

  11. 11

    覆盖 django-rest-auth 或 django-allauth 的注册功能

  12. 12

    如何覆盖Django-Registration版本1.0中的默认注册表单?

  13. 13

    如何覆盖Django-Registration版本1.0中的默认注册表单?

  14. 14

    如何为django-allauth登录/注册默认表单赋予样式?

  15. 15

    如何为django-allauth登录/注册默认表单赋予样式?

  16. 16

    使用ACCOUNT_FORMS覆盖Django allauth登录表单

  17. 17

    使用Django Allauth注册Facebook用户

  18. 18

    Django allauth注册视图无法正常工作

  19. 19

    如何编辑django-allauth默认模板?

  20. 20

    通过社交网站注册时如何跳过django-allauth提出的用户注册表格?

  21. 21

    通过社交网站注册时如何跳过django-allauth提出的用户注册表格?

  22. 22

    如何发布到allauth注册表单以填写初始数据?

  23. 23

    覆盖Django allauth注册“下一个”重定向URL

  24. 24

    Django Allauth错误:“'socialaccount'不是注册的标记库”

  25. 25

    Django AllAuth-登录/注册后保存会话数据

  26. 26

    如何在django-allauth的社交帐户注册流程中显示自定义表单

  27. 27

    将参数传递给Django / Allauth中的覆盖视图

  28. 28

    测试Django allauth

  29. 29

    Django allauth允许的网址

热门标签

归档