登録時に生年月日を保存するには、django登録でSelectDateWidgetを使用しています。私は誕生日を除外しようとしましたが、プロファイルが作成され、余分なデータで保存されました。私はすべてが間違っていてどこがうまくいかないのかよくわからない。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を保存できました。 'def clean_dob(self):\t \t dob = self.cleaned_data.get( 'dob') \t \t私のforms.pyのprint dob'は、エラーが発生する前に正しい形式で日付を表示します。それでも解決。 –
私の答えの最後にあるデバッグノートを参照してください。 – Haes
あなたのアドバイスをしてくれてありがとう、バックエンドで貯金をしました。上記の私の解決策を参照してください。私はビューをカスタマイズすることを避けようとしていました。私は何か理由を見なかった。 –