У меня есть страница поиска, где пользователь может отправлять запросы, которые пытаются сопоставить объекты в базе данных.Когда пользователь отправил форму, и по его / ее запросу не найдено результатов, я хочу дать сообщение "По этому запросу не найдено результатов" .Проблема, с которой я сталкиваюсь сейчас, заключается в том, что сообщение отображается, даже если пользователь еще не отправил форму.
Вот как выглядит мой код:
Шаблон отзыва
<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,
})
Я думал, что, выполняя условия в списке результатов, я мог проверитьбыла ли форма отправлена или нет (пустой список из представления).
Сейчас этот код дает мне «Нет результатов для этого поиска», даже если не было ни одной отправки.Есть мысли?