Я пытаюсь добавить простую форму поиска на мой django веб-сайт. Когда я нажимаю кнопку поиска, я перенаправляюсь на страницу new_search. html (как и должно быть), но страница не показывает никакого результата. Спасибо за вашу помощь!
Код такой:
У меня есть домашняя страница, где я размещаю форму поиска следующим образом:
<form method="get" action="{% url 'new_search' %}">
{%csrf_token%}
<input type="text" name="srh" class= "form-control" placeholder="Search">
<button type="submit" name="submit">Search</button>
</form>
Когда пользователь ищет для чего-то результат должен быть показан на странице new_search. html. Функция, которую я написал в views.py, выглядит следующим образом:
def new_search(request):
if request.method == 'GET':
srch = request.GET.get('srh')
if srch:
sr = Info.objects.filter(Q(band__icontains=srch) | Q(disco__icontains=srch))
if sr:
return render(request, 'new_search.html', {'sr':sr})
else:
messages.error(request, 'no results')
else:
return render(request, 'new_search')
return render(request, 'new_search.html')
И страница new_search. html выглядит так:
<div>
{% if sr %}
{% for k in sr %}
<table width="200px">
<tr><td>Band</td><td>{{k.band}}</td></tr>
<tr><td>Album</td><td>{{k.disco}}</td></tr>
</table>
{%endfor%}
{%endif%}
</div>
Model.py таков:
class Info(models.Model):
band = models.CharField(max_length=200, help_text="Write Here")
disco = models.CharField(max_length=200, help_text="Write Here")
etichetta_p = models.CharField(max_length=200, help_text="Write Here")
etichetta_d = models.CharField(max_length=200, help_text="Write Here")
matrice = models.CharField(max_length=200, help_text="Write Here")
anno = models.PositiveIntegerField(default=0)
cover = models.ImageField(upload_to='images/')
def __str__(self):
return self.band
urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('search.urls')),
path('accounts/', include('django.contrib.auth.urls')),
app urls.py
urlpatterns = [
path('', homeView.as_view(), name='home'),
path('anno', views.anno, name='anno'),
path('band/', bandView.as_view(), name='band'),
path('album/', albumView.as_view(), name='album'),
path('add/create', views.AddInfo.as_view(), name='add_create'),
path('signup/', core_views.signup, name='signup'),
path('new_search/', new_searchView.as_view(), name='new_search'),
]