не получить результаты в поиске Django - PullRequest
0 голосов
/ 22 ноября 2018

Я создал простой блог django, где я хочу предоставить опцию поиска.Итак, я попытался и даже не получил никакой ошибки.

но проблема в том, что я даже не получил никаких результатов поиска.показывает пустую страницу, даже если есть запись, связанная с этим запросом.помогите мне, ребята.

Вот мой код: ......

views.py

class home_view(ListView):
    model = home_blog_model
    template_name = "home.html"
    context_object_name = "posts"
    paginate_by = 8
    ordering = ['-date']


def search(request):
    query = request.GET.get("key")

    if query:
        results = home_blog_model.objects.filter(Q(title__icontains=query))
    else:
        results = home_blog_model.objects.filter(status="Published")


    return render(request , "home.html" , {"query":query})

urls.py

from django.urls import path
from . import views
from django.contrib.auth.views import LoginView , LogoutView
urlpatterns = [

    path("" , views.home_view.as_view() , name="blog-home"),
    path("posts/<int:pk>/" , views.detail_view , name="detail"),
    path("admin/login/" , LoginView.as_view(template_name="admin-login.html") , name="admin-login"),
    path("admin/logout/" , LogoutView.as_view() , name="admin-logout"),
    path("admin/post/create/" , views.create_post_view , name="create_post"),
    path("post/search/" , views.search , name="search_post"),
]

models.py

from django.db import models

class home_blog_model(models.Model):
    title = models.CharField(max_length=100)
    summary = models.CharField(max_length=300)
    content = models.TextField()
    date = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.title

home.html

<div align="right">
    <form class="form-group" method="GET" action="{% url 'search_post' %}">
        <input type="text" name="key" placeholder="search........" value="{{request.GET.key}}">
        <button class="btn" type="submit">Search</button>
    </form>
</div>

заранее спасибо!

1 Ответ

0 голосов
/ 22 ноября 2018

Вы не возвращаете результаты из представления search.Передаваемый вами контекст содержит только запрос.

Кроме того, в home.html вы не просматриваете результаты, пытаясь их отобразить.

...