首页 > 解决方案 > Django 拒绝保存 django-bootstrap-datepicker-plus 上显示的日期?

问题描述

在我的 Django (1.11.5) 项目中,我在模型中使用django-bootstrap-datepicker-plus应用程序。当用户提交表单时没有任何反应,我不明白为什么 Django 拒绝保存表单上显示的日期。如何解决?DateFieldProfile

模型.py:

class Profile(models.Model):
    user = models.OneToOneField(User,on_delete=models.CASCADE)
    birth_date = models.DateField(blank=False)

   @receiver(post_save, sender=User)
   def create_or_update_user_profile(sender, instance, created, **kwargs):
       if created:
           Profile.objects.create(user=instance)
       instance.profile.save()

表格.py:

# "django-user-accounts" application
from account.forms import SignupForm as BaseSignupForm
# "django-bootstrap-datepicker-plus" application
from bootstrap_datepicker_plus import DatePickerInput

class SignupForm(BaseSignupForm):
    birth_date = forms.DateField(widget=DatePickerInput())

视图.py:

# django-user-accounts application
from account.views import SignupView as BaseSignupView

class SignupView(BaseSignupView):
    form_class = SignupForm

    def generate_username(self, form):
        pass

    def after_signup(self, form):
        self.create_profile(form)
        super(SignupView, self).after_signup(form)

    def create_profile(self, form):
        profile = self.created_user.profile
        profile.birth_date = form.cleaned_data["birth_date"]
        profile.save()

标签: pythondjango

解决方案


推荐阅读