Навигация Django как POST-вход для динамического представления
Я создаю приложение на django, которое отображает данные о недвижимости в разных городах. Информация о городе сохраняется в модели django. У меня есть одно представление, которое отображает все данные о конкретном городе, мне нужен только способ получить ввод пользователя о том, данные о каком городе он хочет увидеть.
В навигационной панели находятся названия городов, как мне сохранить выбор пользователя в навигации в информации сессии и использовать его в качестве входных данных для представления?
В форме POST?
base.html
<div class="navigation">
<ul>
<li>
<a href="#">
<span class="title">City 1</span>
</option>
</a>
</li>
<li>
<a href="#">
<span class="title">City 2</span>
</a>
</li>
<li>
<a href="#">
<span class="title">City 3</span>
</a>
</li>
<li>
<a href="#">
<span class="title">City 4</span>
</a>
</li>
</ul>
</div>
Вы можете создать новый View, например /city/str:cityname, получить информацию о городе и использовать ваш существующий шаблон, который отображает детали о городе.
В вашем base.html вы можете поместить href следующим образом city/City1. Это должно сделать get запрос к этому представлению /city/str:cityname.
Вы можете использовать запрос get к представлениям при нажатии на одну из опций. Например:
В разделе навигации base.html ваш элемент списка будет иметь вид
<li>
<a href="{% url 'get-city-data' city=city2 %}">
<span class="title">City 2</span>
</a>
</li>
Так что ваш urls.py будет выглядеть примерно так
urlpatterns = [
# your existing urls
path('get-city-data/<str:city>/', get_city_data, name='get-city-data'),
]
И взгляды как
def get_city_data(request, city=None):
# your logic here to return data filter by city
context = {} # populate with required context
return render(request, 'city.html', context)