【发布时间】:2011-08-13 14:58:00
【问题描述】:
我有一个表单,用户从 jQuery datepicker 中选择一个日期,该日期被提交以创建一个 Proposal 对象。这个错误在测试中从未发生在我身上,但发生在我的实时服务器上的用户身上(我调试它的问题的一部分)。最奇怪的部分是对象是在数据库中创建的,即使错误出现在创建对象的行上。有什么想法吗?
日期在 Db 中是这样存储的:2011-08-17
错误: ValidationError: [u'以 YYYY-MM-DD 格式输入有效日期。']
src/views.py",第 1901 行,在 new_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 错误电子邮件中,日期似乎不在 POST 中,但它是在我调用 request.POST.get('date') 时。
POST:<QueryDict: {u'date': [u''], u'csrfmidd
【问题讨论】:
-
占位符显示“yyyy/mm/dd”。您确定这不是输入的格式吗?在对
proposal的实例调用 save 之前,尝试将request.POST.get('date')的值打印到控制台,以查看它是否符合您的预期。 -
request.POST.get('date') 是 2011-08-18 。在错误之后,这似乎是正确的。
标签: django django-forms django-views