gpt4 book ai didi

django 表单 dateField 验证失败

转载 作者:行者123 更新时间:2023-12-05 00:00:55 24 4
gpt4 key购买 nike

我正在尝试在 django 中验证用户分析表单,但我不能。 forms.dateField() 似乎有问题。它不验证(即 is_valid() 返回 false)

这是我的表单 dateField 条目:date_of_birth = forms.DateField(label=u'date of birth', input_formats='%d/%m/%Y', required=False, widget=forms.DateInput(format = '%d/%m/%Y'))
我注意到 request.POST.get('date_of_birth', '')返回正确的日期(即我在 html 表单字段中输入的日期)。

我还注意到在这个函数中:

def clean_date_of_birth(self):
date = self.cleaned_data['date_of_birth']

日期对象始终为无。

我究竟做错了什么?

编辑:

这就是我要输入的内容: 29/07/1974 (1974年7月29日)

这是“提交”的输出(各种请求)
29/07/1974
profile form is *NOT* valid
[23/Feb/2012 12:16:27] "POST /profile/chris/ HTTP/1.1" 200 16289

29/7/1974
profile form is *NOT* valid
[23/Feb/2012 12:16:33] "POST /profile/chris/ HTTP/1.1" 200 16289

1974-07-29
profile form is *NOT* valid
[23/Feb/2012 12:18:15] "POST /profile/chris/ HTTP/1.1" 200 16289

这是我的模板
    <div class="input_area">
<form id="profile_form" method="post" action="/profile/{{ user.username }}/">{% csrf_token %}
{{ form.as_p }}
<input type="submit" id="submit" value="save" class="submitButton idle" style="width:70px" />
</form>
</div>

这是我的 views.py
def profile(request, username):
form = ProfileForm(request.POST)
print request.POST.get('date_of_birth', 'None')
try:
user = User.objects.get(username=username)
except User.DoesNotExist:
raise Http404(u'User not Found')
if form.is_valid():
print 'profile form is valid'
else:
print 'profile form is *NOT* valid'

最后这是我的 forms.py(目前不要使用 clean_data 函数)
class ProfileForm(forms.Form):

tz = []
timezones = Timezone.objects.all()
for timezone in timezones:
val = str(timezone.hour)
v = val.split(':')
tuple = (timezone.id, '('+timezone.sign+''+v[0]+':'+v[1]+') '+timezone.name)
tz.append(tuple)

sex = [('male','male'),('female', 'female'),('unknown', 'prefer not to say')]
real_name = forms.CharField(label=u'real name', widget=forms.TextInput, required=False)
date_of_birth = forms.DateField(label=u'date of birth', input_formats='%d/%m/%Y', required=False, widget=forms.DateInput(format = '%d/%m/%Y'))
pp_email = forms.EmailField(label=u'Paypal Email', widget=forms.TextInput, required=False)
gender = forms.ChoiceField(label=u'sex', choices=sex, widget=forms.Select(), required=False)
timezone = forms.ChoiceField(label=u'time zone', choices=tz, widget=forms.Select())
address = forms.CharField(label=u'street address', widget=forms.Textarea, required=False)
postal = forms.CharField(label=u'postal code', widget=forms.TextInput, required=False)

最佳答案

关于django 表单 dateField 验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9410058/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com