Django:ValidationError:[u'输入YYYY-MM-DD格式的有效日期。']

时间:2011-08-13 14:58:01

标签: django django-forms django-views

我有一个表单,用户从jQuery datepicker中选择一个日期,提交该日期以创建Proposal对象。我在测试中从未发生过这个错误,但是我的实时服务器上的用户发生了这个错误(部分问题是调试它)。最奇怪的部分是,即使错误位于创建对象的行上,也会在数据库中创建对象。有什么想法吗?

日期在Db:2011-08-17中以这样的方式存储

错误: ValidationError:[u'输入YYYY-MM-DD格式的有效日期。']

src / views.py“,第1901行,在new_proposal中    proposal = Proposal.objects.create(user = request.user,host = host,date = date)

HTML:

<form action="{% url new_proposal %}" method="post" accept-charset="utf-8" style="padding:0">{% csrf_token %}
<span>Date:</span>
<input type="date" name="date" id="datepicker" placeholder="yyyy/mm/dd"/>
<input type="hidden" name="host" id="{{profile.user.id}}" value="{{profile.user.id}}">
<input type="submit" value="Book it!" class="action">
</form>

查看:

@login_required
def new_proposal(request):
    host_id = request.POST.get('host')
    host = User.objects.get(id=host_id)

    date = request.POST.get('date')
    price = host.get_profile().price

    proposal = Proposal.objects.create(user=request.user, host=host, date=date)
    proposal.price = actual_price
    proposal.save()

在Django错误电子邮件中,似乎Date不在POST中,但是当我调用request.POST.get('date')时。

     POST:<QueryDict: {u'date': [u''], u'csrfmidd

1 个答案:

答案 0 :(得分:0)

我相信这是解决方案。对Proposal对象使用ModelForm + DateField。然后在视图中:

if request.POST:

    if form.is_valid():

由于我没有亲身经历过这个错误,我仍然不确定 - 但是我的看法&amp;表格现在采用适当的Django格式。