Отображение результатов поиска Django_Filter на странице искомого имущества

Я пробовал различные варианты и, похоже, не могу понять, как показать искомое имущество с главной страницы на странице поиска. В принципе, у меня есть два шаблона - главная страница и страница искомого объекта. У меня есть форма поиска на главной странице, и я хотел бы отобразить результаты на другой странице.

Мой views.py для главной страницы

def home(request,):


properties = Property.objects.all()[:5]

context = {"property": property, "properties": properties}
return render(request, "base/index.html", context)

Мои взгляды на страницу поиска

def prop_search(request,):

    property = Property.objects.all()
    
    properties = Property.objects.all()
    images = Image.objects.filter(property__in=property.all())
   
    propFilter = PropertyFilter(request.GET, queryset=property)
    
    count = propFilter.qs.count()
  
    context = {
        "propFilter": propFilter,
        "property": property,
        "properties": properties,
        "images": images,
        'paginator':paginator,

    }
    return render(request,'base/property-list.html', context)

My Urls.py

path("", views.home, name="home"),
path("add-property", views.addProperty, name="addProperty"),
path("prop_search", views.prop_search, name="prop_search"),

Вы пишете, что у вас есть форма поиска на главной странице. Вы можете использовать action, чтобы указать, куда вы хотите вернуть результат.

<form method="post" action="/your way/">

В данном случае форма вызывается через представление 'index3' с помощью шаблона 'index3.html'. В action="/bboard/name/" вы должны написать свой путь для отправки результата. В представлении 'name' вы получаете данные через запрос. Например, метод request.method. В данном случае у меня он POST. Доступ к данным через request.POST.get("name"). Это открывает доступ к полю "name". Данные представлены в виде словаря. Что ж, тогда из этих данных можно составить словарь и отправить его на рендер.

В моем случае результат отправляется в представление 'name', где полученное имя отображается на странице.

урлы

urlpatterns = [

path("index3/", index3),
path("name/", name),
]

views (в index3 пропишите путь к шаблону)

def index3(request):
   return render(request, "bboard/index3.html")

def name(request):
   print(request)
   name = request.POST.get("name", "Undefined")
   return HttpResponse(f"<div>Name: {name}  <div>")

шаблоны: index3.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
</head>
<body>
    <form method="post" action="/bboard/name/">
        {% csrf_token %}
        <p>Name:<br> <input name="name" /></p>
        <input type="submit" value="Send" />
    </form>
</body>
</html>
Вернуться на верх