【问题标题】:Django-allauth not saving additional field on custom SignupFormDjango-allauth 没有在自定义 SignupForm 上保存附加字段
【发布时间】:2019-04-22 17:53:27
【问题描述】:

我无法正确扩展 django-allauth 注册表单。

我需要的字段显示在我的注册表单中,但 rappa_name 字段没有存储在我的数据库中。

我关注了这个帖子:How to customize user profile when using django-allauth

但无法让它工作。

我的forms.py:

from django import forms
from django.contrib.auth import get_user_model
from django.contrib.auth.forms import UserCreationForm


User = get_user_model()


class UserCreationForm(UserCreationForm):

    rappa_name = forms.CharField(label = "Rappa Name")

    class Meta(UserCreationForm.Meta):
        model = User

    def signup(self, request, user):

        user.rappa_name = self.cleaned_data['rappa_name']
        user.save()
        return user

还有我的models.py


class User(AbstractUser):

    # raooa name of user
    rappa_name = CharField(_("Rappa Name"), default='', max_length=255)

    def get_absolute_url(self):
        return reverse("users:detail", kwargs={"username": self.username})

我确定我的 settings.py 有

ACCOUNT_FORMS = {
'signup': 'myproject.users.forms.UserCreationForm',
}

我需要将 rappa_name 保存为用户的字段,但目前没有保存

【问题讨论】:

  • 你确定你在settings.py中设置了AUTH_USER_MODEL = 'myproject.User'吗?
  • @AmanGarg 是:AUTH_USER_MODEL = "users.User"

标签: django django-allauth


【解决方案1】:

已解决:我将 rappa_name 字段移至我的个人资料,然后将 SignupForm 更改为:

class UserCreationForm(SignupForm):

    rappa_name = forms.CharField(max_length=30, label='Rappa Name')

    def save(self, request):

        # Ensure you call the parent classes save.
        # .save() returns a User object.
        user = super(UserCreationForm, self).save(request)

        # Add your own processing here.
        profile = user.profile
        profile.rappa_name = self.cleaned_data['rappa_name']
        profile.save()
        # You must return the original result.
        return user

我关注了这里的文档https://django-allauth.readthedocs.io/en/latest/forms.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-26
    • 2020-01-20
    • 1970-01-01
    • 1970-01-01
    • 2021-06-18
    • 2017-03-22
    • 2014-08-11
    • 2014-02-15
    相关资源
    最近更新 更多