Как правильно указать «ничего не найдено для этого запроса» в форме с Django - PullRequest
0 голосов
/ 15 октября 2011

У меня есть страница поиска, где пользователь может отправлять запросы, которые пытаются сопоставить объекты в базе данных.Когда пользователь отправил форму, и по его / ее запросу не найдено результатов, я хочу дать сообщение "По этому запросу не найдено результатов" .Проблема, с которой я сталкиваюсь сейчас, заключается в том, что сообщение отображается, даже если пользователь еще не отправил форму.

Вот как выглядит мой код:

Шаблон отзыва

<div> What do you want to review? </div>
<form action="/newreview/" method="get">
{% for field in form %}
        <div class="fieldWrapper">
            {{ field.errors }}
            {{ field.label_tag }}: {{ field }}
        </div>
{% endfor %}
<input type="submit" value="Submit" name="submit" />

{% if results %}
    {{ results.id }}
{% else %}
        <li> There is no results for this search </li>
{% endif %}

</form>

И я делаю следующее для Представления :

def newreview(request):
    if 'submit' in request.GET: # If the form has been submitted...
        form = LookforPlace(request.GET) # A form bound to the GET data
        if form.is_valid(): # All validation rules pass
            name = form.cleaned_data['name']
            city = form.cleaned_data['city']
        try:
            results = Place.objects.get(name__icontains=name)
        except Place.DoesNotExist:
            results = None
    else:
        results =  []
        form = LookforPlace() # An unbound form
    return render_to_response('newreview.html', {
        'form': form, 'results': results,
    })

Я думал, что, выполняя условия в списке результатов, я мог проверитьбыла ли форма отправлена ​​или нет (пустой список из представления).
Сейчас этот код дает мне «Нет результатов для этого поиска», даже если не было ни одной отправки.Есть мысли?

1 Ответ

1 голос
/ 15 октября 2011

Почему бы не поставить флаг в вашем контексте, чтобы определить, был ли он отправлен?

if 'submit' in request.GET:
    submitted = True
    ...
else:
    submitted = False
    ...


{% if submitted %}
    {% if results %}
        {{ results.id }}
    {% else %}
        <li> There are no results for this search </li>
    {% endif %}
{% endif %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...