Django allauth定制注册

时间:2015-04-27 06:12:57

标签: django django-allauth


我对Django allauth-app有疑问。我已经设置了allauth-app并且有一个标准登录。现在我想在注册时存储一些额外的信息。确切地说,我想存储用户的城市,名字和姓氏。我试图按照

中的说明完成这项任务

How to customize user profile when using django-allauth

但即使我尝试捕获我不应该创建模型的名字和姓氏,我也会因为这个错误而失败:

    'module' object has no attribute 'CharField'

我在表单中添加了新字段并执行了此操作:

ACCOUNT_SIGNUP_FORM_CLASS = 'yourproject.yourapp.forms.SignupForm'

由于我现在使用Django几天,它可能是我想念的非常基本的东西,我确实尝试阅读手册,但我并没有接近解决这个问题,我决定向你寻求帮助。        提前谢谢。

我的forms.py看起来像这样:

from django.forms import *   

class SignupForm(forms.Form):
    first_name = forms.CharField(max_length=30, label='Voornaam')
    last_name = forms.CharField(max_length=30, label='Achternaam')

def signup(self, request, user):
    user.first_name = self.cleaned_data['first_name']
    user.last_name = self.cleaned_data['last_name']
    user.save()

我的models.py看起来像这样:

from django.db import models
from django.contrib.auth.models import User
from django.db import models
from allauth.account.models import EmailAddress

class Profile(models.Model):
    user = models.OneToOneField(User, verbose_name=_('user'), related_name='profiles')          
    first_name=models.CharField(_("First Name"), max_length=150)
    last_name=models.CharField(_("Last Name"), max_length=150)

此行中出现错误:

 first_name = forms.CharField(max_length=30, label='Voornaam')

后果 - > 我的表单中的import语句是错误的。它应该是这样的:

formy.py:

from django import forms

1 个答案:

答案 0 :(得分:0)

您导入表单模块的方式可能是个问题。你要么想做:

from django.forms import CharField

您明确导入要使用的字段

或者最好:

from django import forms

如果您只想将它​​们全部导入。