Django: Получение содержимого элемента списка из списка гиперссылок

#html #django #parameter-passing

Вопрос:

Я застрял со списком тегов привязки и получаю их содержимое в views.py.

Предыстория: У меня есть форма ввода адресов. Если введенный/отправленный адрес не является конкретным, как это необходимо, например, потому, что есть два города с одинаковым названием, то я хочу отобразить список потенциальных адресов.

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

html-страница:

 <ul>
<form action="{% url 'analytics' %}" method="GET">
{% for item in list_addresses %}
    <li><a href="{% url 'analytics' %}" name="pot_address" >{{ item.post_code }}</a></li>
{% endfor %}
</form>
</ul>
 

Мой urls.py:

 urlpatterns = [
    path('', views.home, name = 'home'),
    path('/analytics', views.analytics, name = 'analytics'),
]
 

Теперь я хочу передать адрес (содержимое элемента списка в html) своему views.py файл. В views.py файл выглядит так:

 def analytics(request):
    if request.method == 'GET':
        pot_adress = request.GET['pot_address']
 

После получения этого адреса в views.py Я хочу использовать его для извлечения определенных данных из базы данных.

Может ли кто-нибудь помочь мне с этим вопросом?

Ответ №1:

Вам нужно добавить строку запроса к вашим URL-адресам, поэтому:

 <a href="{% url 'analytics' %}?pot_code={{ item.post_code|urlencode }}" name="pot_address" >{{ item.post_code }}</a> 

В представлении вы можете затем отфильтровать с помощью:

 def analytics(request):
    if request.method == 'GET':
        pot_adress = request.GET['pot_address']
        SomeModel.objects.filter(post_code=pot_adress)
        # … 

Комментарии:

1. большое спасибо. Работает