首页 \ 问答 \ Allauth不会保存其他字段(Allauth will not save additional fields)

Allauth不会保存其他字段(Allauth will not save additional fields)

我一直试图扩展我的allauth注册表单,但似乎无法使它工作,我没有收到任何错误消息,一切似乎工作正常,除了我的所有其他字段都没有得到保存。 如果你能看到我做错了,请告诉我,谢谢!

楷模 -

from django.db import models
from django.contrib.auth.models import User

class EmployerProfile(models.Model):

    region_choice = (
        ('1', 'Auckland'),
        ('2', 'Wellington'),
        ('3', 'Christchurch')
    )
    suburb_choice = (
        ('1', 'Glendowie'),
        ('2', 'Kohimarama'),
        ('3', 'Mission Bay')
    )
    industry_choice = (
        ('1', 'Restaurant'),
        ('2', 'IT'),
        ('3', 'Construction')
    )

    user = models.OneToOneField(User, unique=True)
    home_number = models.IntegerField(max_length=12)
    mobile_number = models.IntegerField(max_length=12)
    business_name = models.CharField(max_length=50)
    business_address_number = models.IntegerField()
    business_address_street = models.CharField(max_length=50)
    business_address_region = models.CharField(max_length=50, choices=region_choice)
    business_address_suburb = models.CharField(max_length=50, choices=suburb_choice)
    business_address_postcode = models.IntegerField(max_length=4)
    business_industry = models.CharField(max_length=50, choices=industry_choice)

    class Meta:
        verbose_name = 'Employer Profile'

形式 -

from django import forms
from models import EmployerProfile

class SignupForm(forms.Form):

    first_name = forms.CharField(max_length=30, label='First Name')
    last_name = forms.CharField(max_length=30, label='Last Name')
    home_number = forms.IntegerField(label='Home Number')
    mobile_number = forms.IntegerField(label='Mobile Number')
    business_name = forms.CharField(label='Business Name')
    business_address_number = forms.IntegerField(label='Street Number')
    business_address_street = forms.CharField(label='Street Name')
    business_address_region = forms.ChoiceField(choices=EmployerProfile.region_choice, label='Region')
    business_address_suburb = forms.ChoiceField(choices=EmployerProfile.suburb_choice, label='Suburb')
    business_address_postcode = forms.IntegerField(label='Postcode')
    business_industry = forms.ChoiceField(choices=EmployerProfile.industry_choice, label='Industry')

    def signup(self, request, user):
        user.first_name = self.cleaned_data['first_name']
        user.last_name = self.cleaned_data['last_name']
        user.home_number = self.cleaned_data['home_number']
        user.mobile_number = self.cleaned_data['mobile_number']
        user.business_name = self.cleaned_data['business_name']
        user.business_address_number = self.cleaned_data['business_address_number']
        user.business_address_street = self.cleaned_data['business_address_street']
        user.business_address_region = self.cleaned_data['business_address_region']
        user.business_address_suburb = self.cleaned_data['business_address_suburb']
        user.business_address_postcode = self.cleaned_data['business_address_postcode']
        user.business_industry = self.cleaned_data['business_industry']

        user.save()

    class Meta:
        model = EmployerProfile

设置 -

SITE_ID = 1
ACCOUNT_SIGNUP_FORM_CLASS = 'profiles.forms.SignupForm'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_EMAIL_VERIFICATION = None
LOGIN_REDIRECT_URL = '/'

I have been trying to extend my allauth signup form but cannot seem to get it working, I receive no error messages and everything appears to work fine except all my additional fields do not get saved. Please tell me if you can see what I am doing wrong, thanks!

Models -

from django.db import models
from django.contrib.auth.models import User

class EmployerProfile(models.Model):

    region_choice = (
        ('1', 'Auckland'),
        ('2', 'Wellington'),
        ('3', 'Christchurch')
    )
    suburb_choice = (
        ('1', 'Glendowie'),
        ('2', 'Kohimarama'),
        ('3', 'Mission Bay')
    )
    industry_choice = (
        ('1', 'Restaurant'),
        ('2', 'IT'),
        ('3', 'Construction')
    )

    user = models.OneToOneField(User, unique=True)
    home_number = models.IntegerField(max_length=12)
    mobile_number = models.IntegerField(max_length=12)
    business_name = models.CharField(max_length=50)
    business_address_number = models.IntegerField()
    business_address_street = models.CharField(max_length=50)
    business_address_region = models.CharField(max_length=50, choices=region_choice)
    business_address_suburb = models.CharField(max_length=50, choices=suburb_choice)
    business_address_postcode = models.IntegerField(max_length=4)
    business_industry = models.CharField(max_length=50, choices=industry_choice)

    class Meta:
        verbose_name = 'Employer Profile'

Forms -

from django import forms
from models import EmployerProfile

class SignupForm(forms.Form):

    first_name = forms.CharField(max_length=30, label='First Name')
    last_name = forms.CharField(max_length=30, label='Last Name')
    home_number = forms.IntegerField(label='Home Number')
    mobile_number = forms.IntegerField(label='Mobile Number')
    business_name = forms.CharField(label='Business Name')
    business_address_number = forms.IntegerField(label='Street Number')
    business_address_street = forms.CharField(label='Street Name')
    business_address_region = forms.ChoiceField(choices=EmployerProfile.region_choice, label='Region')
    business_address_suburb = forms.ChoiceField(choices=EmployerProfile.suburb_choice, label='Suburb')
    business_address_postcode = forms.IntegerField(label='Postcode')
    business_industry = forms.ChoiceField(choices=EmployerProfile.industry_choice, label='Industry')

    def signup(self, request, user):
        user.first_name = self.cleaned_data['first_name']
        user.last_name = self.cleaned_data['last_name']
        user.home_number = self.cleaned_data['home_number']
        user.mobile_number = self.cleaned_data['mobile_number']
        user.business_name = self.cleaned_data['business_name']
        user.business_address_number = self.cleaned_data['business_address_number']
        user.business_address_street = self.cleaned_data['business_address_street']
        user.business_address_region = self.cleaned_data['business_address_region']
        user.business_address_suburb = self.cleaned_data['business_address_suburb']
        user.business_address_postcode = self.cleaned_data['business_address_postcode']
        user.business_industry = self.cleaned_data['business_industry']

        user.save()

    class Meta:
        model = EmployerProfile

Settings -

SITE_ID = 1
ACCOUNT_SIGNUP_FORM_CLASS = 'profiles.forms.SignupForm'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_EMAIL_VERIFICATION = None
LOGIN_REDIRECT_URL = '/'

原文:https://stackoverflow.com/questions/31366278
更新时间:2024-05-04 19:05

相关问答

更多

相关文章

更多

最新问答

更多
  • python的访问器方法有哪些
  • 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
  • 透明度错误IE11(Transparency bug IE11)
  • linux的基本操作命令。。。
  • 响应navi重叠h1和nav上的h1链接不起作用(Responsive navi overlaps h1 and navi links on h1 isn't working)
  • 在C中读取文件:“r”和“a +”标志的不同行为(Reading a File in C: different behavior for “r” and “a+” flags)
  • NFC提供什么样的带宽?(What Kind of Bandwidth does NFC Provide?)
  • 元素上的盒子阴影行为(box-shadow behaviour on elements)
  • Laravel检查是否存在记录(Laravel Checking If a Record Exists)
  • 设置base64图像的大小javascript - angularjs(set size of a base64 image javascript - angularjs)
  • 想学Linux 运维 深圳有哪个培训机构好一点
  • 为什么有时不需要在lambda中捕获一个常量变量?(Why is a const variable sometimes not required to be captured in a lambda?)
  • 在Framework 3.5中使用服务器标签<%=%>设置Visible属性(Set Visible property with server tag <%= %> in Framework 3.5)
  • AdoNetAppender中的log4net连接类型无效(log4net connection type invalid in AdoNetAppender)
  • 错误:发送后无法设置标题。(Error: Can't set headers after they are sent. authentication system)
  • 等待EC2实例重启(Wait for an EC2 instance to reboot)
  • 如何在红宝石中使用正则表达式?(How to do this in regex in ruby?)
  • 使用鼠标在OpenGL GLUT中绘制多边形(Draw a polygon in OpenGL GLUT with mouse)
  • 江民杀毒软件的KSysnon.sys模块是什么东西?
  • 处理器在传递到add_xpath()或add_value()时调用了什么顺序?(What order are processors called when passed into add_xpath() or add_value()?)
  • sp_updatestats是否导致SQL Server 2005中无法访问表?(Does sp_updatestats cause tables to be inaccessible in SQL Server 2005?)
  • 如何创建一个可以与持续运行的服务交互的CLI,类似于MySQL的shell?(How to create a CLI that can interact with a continuously running service, similar to MySQL's shell?)
  • AESGCM解密失败的MAC(AESGCM decryption failing with MAC)
  • SQL查询,其中字段不包含$ x(SQL Query Where Field DOES NOT Contain $x)
  • PerSession与PerCall(PerSession vs. PerCall)
  • C#:有两个构造函数的对象:如何限制哪些属性设置在一起?(C#: Object having two constructors: how to limit which properties are set together?)
  • 平衡一个精灵(Balancing a sprite)
  • n2cms Asp.net在“文件”菜单上给出错误(文件管理器)(n2cms Asp.net give error on Files menu (File Manager))
  • Zurb Foundation 4 - 嵌套网格对齐问题(Zurb Foundation 4 - Nested grid alignment issues)
  • 湖北京山哪里有修平板计算机的