使用django中的自定义表单显示和更新DateField

问题描述 投票:1回答:1

我正在尝试使用我的自定义表单显示和更新DateField,我正在使用DATE_INPUT_FORMATS

settings.朋友

DATE_INPUT_FORMATS = ['%d %m %Y']

forms.朋友

class UserForm(forms.ModelForm):
    birth_day = forms.DateField(input_formats=settings.DATE_INPUT_FORMATS)
    class Meta:
        model = User
        fields = ('first_name', 'last_name','birth_day')

我的自定义输入:

<input type="text" name="birth_day" value="{{ user.birth_day }}" size="10" class="form-control date-picker" id="id_birth_day" data-datepicker-color="">

默认表单输入

<input type="text" name="birth_day" value="" required="" id="id_birth_day" class="form-control">

每次我试图更新时我的问题就开始了我必须重新进入DateField,因为我的DATE_INPUT_FORMATS是这样的

06 02 2017

但是django就是这样展示的

2017年2月6日

所以h

所以每次我更新我的表格我都会

输入一个有效日期。错误

所以它是解决这个问题的最佳方法,如果可能的话,不改变显示和输入格式

django html5 django-models django-forms
1个回答
1
投票

我对你的要求有类似的设置,对我来说工作正常

HTML --- Edit.html

<p>You can edit your account using the following form:</p>
        <form action="." method="post" enctype="multipart/form-data" id="controlForm">
        {{ user_form.as_p }}
        {{ profile_form.as_p }}
        {% csrf_token %}
<p><input type="submit" value="Save changes"></p>

models.朋友 ---->

class Profile(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    date_of_birth = models.DateField(blank=False, null=True)
    img = models.ImageField(upload_to=upload_to, blank=True, db_index=True)
    slug = models.SlugField(max_length=200, blank=True)

forms.朋友

class ProfileEditForm(forms.ModelForm):
    class Meta:
        model = Profile
        fields = ('date_of_birth', 'img')

上面的代码以YYYY-MM-DD格式保存日期以更改您可以在settings.py中添加日期格式的默认格式

根据您的意愿使用DATE_INPUT_FORMT = ['YYYY-MM-DD']或任何格式

© www.soinside.com 2019 - 2024. All rights reserved.