我正在使用SelectDateWidget和django-registration在註冊時保存出生日期。我已經嘗試過排除生日,並且創建了一個配置文件並與額外的數據一起保存。我不太清楚哪裏一切都出錯了。Django 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不得爲NULL
發佈數據正在生成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()
我正在使用自定義後端,我已經能夠保存first_name和last_name。以下內容:'高清clean_dob(個體經營): \t \t DOB = self.cleaned_data.get( 'DOB') \t \t打印dob'在我forms.py是打印日期以正確的格式錯誤發生之前。仍然如此解決。 – 2012-01-06 02:53:27
請在我的答案最後看到調試筆記。 – Haes 2012-01-06 09:19:57
非常感謝你的建議,在後端保存了竅門。請參閱上面的解決方案。我試圖避免自定義視圖。我沒有看到任何理由。 – 2012-01-06 16:02:07