【发布时间】:2012-02-03 07:11:26
【问题描述】:
我正在使用带有 django-registration 的 SelectDateWidget 在注册时保存出生日期。我尝试排除生日,并使用额外数据创建并保存配置文件。我不太确定哪里出了问题。
models.py
class Profile(models.Model):
...
dob = models.DateField(_('birthday'))
forms.py
from django.forms.extras.widgets import SelectDateWidget
class ProfileRegistration(RegistrationFormTermsOfService):
...
dob = forms.DateField(widget=SelectDateWidget(years=range(1999,1939,-1)),
label=_("Birthday"),
)
prifilebackend.py
from registration.forms import RegistrationForm
from registration.models import RegistrationProfile
...
class Backend(default.DefaultBackend):
...
p = Profile.objects.get(user=new_user)
p.dob=kwargs['dob']
p.save()
我在注册用户时遇到的错误是:profile_profile.dob may not be NULL
post数据生成dob_day、dob_month和dob_year。我试图清理数据但无济于事。任何帮助将不胜感激。
已解决:
profilebackend.py
signals.user_registered.send(sender=self.__class__,
user=new_user,
request=request)
u = User.objects.get(username=new_user.username)
u.first_name = kwargs['first_name']
u.last_name = kwargs['last_name']
gender = kwargs['gender']
dob = kwargs['dob']
p = Profile(user = new_user, gender = gender, dob = dob)
p.save()
u.save()
【问题讨论】:
标签: django django-registration