Django: ValidationError: [u'Введите правильную дату в формате ГГГГ-ММ-ДД. '] - PullRequest
2 голосов
/ 13 августа 2011

У меня есть форма, в которой пользователь выбирает дату из средства выбора даты jQuery, которое отправляется для создания объекта предложения. Эта ошибка никогда не случалась со мной при тестировании, но случалась с пользователями на моем работающем сервере (часть моей проблемы при отладке). Самым странным является то, что объект создается в базе данных, даже если ошибка находится в строке, где создается объект. Есть идеи?

Дата хранится в Db: 2011-08-17

Ошибка: ValidationError: [u'Введите правильную дату в формате ГГГГ-ММ-ДД. ']

src / views.py ", строка 1901, в новом предложении offer = 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

1 Ответ

0 голосов
/ 13 августа 2011

Я считаю, что это решение. Используйте ModelForm + DateField для объекта предложения. Тогда в представлении:

if request.POST:

    if form.is_valid():

Поскольку я лично не сталкивался с этой ошибкой, я все еще не уверен - но мой взгляд и форма теперь в правильном формате Django.

...