Kayıt sırasında Doğum Tarihi kaydetmek için django kaydı ile SelectDateWidget kullanıyorum. Doğum gününü hariç tutmayı denedim ve bir profil oluşturuldu ve ekstra verilerle kaydedildi. Her şeyin yanlış gittiğinden emin değilim.Django SelectDateWidget kaydetme tarihi
models.py
class Profile(models.Model):
...
dob = models.DateField(_('birthday'))
forms.py kullanıcıyı kaydederken alıyorum hatadır
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()
prifilebackend.py
from django.forms.extras.widgets import SelectDateWidget
class ProfileRegistration(RegistrationFormTermsOfService):
...
dob = forms.DateField(widget=SelectDateWidget(years=range(1999,1939,-1)),
label=_("Birthday"),
)
: profile_profile.dob olmayabilir NULL
Gönderi verileri, dob_day, dob_month ve dob_year üretiyor. Verileri temizlemeye çalıştım ama boşuna. Herhangi bir yardım büyük takdir edilecektir. Çözüldü
:
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()
Özel bir arka uç kullanıyorum ve bir first_name ve last_name kaydedebildim. Aşağıdaki: 'def clean_dob (öz): \t \t dob = self.cleaned_data.get ('dob') \t \t baskı dob' benim forms.py hata oluşmadan önce doğru biçimde tarihini yazdırmak olduğunu. Hala çok çözüm. –
Lütfen cevabımın sonunda hata ayıklama notlarına bakın. – Haes
Tavsiye ederim o kadar çok teşekkür ederim. Çözümüm için yukarı bakın. Görünümü özelleştirmekten kaçınmaya çalışıyordum. Hiçbir sebep görmedim. –