Как передать аргумент из шаблона django представлениям при нажатии элемента списка из списка?

#javascript #python #html #django #web

#javascript #python #HTML #django #веб

Вопрос:

В моем шаблоне у меня есть список, содержащий некоторые элементы под заголовками name и id, и я хочу добавить гиперссылку на каждый из них item, и когда я нажимаю на элемент, он принимает его id в качестве аргумента функции в views.py из django и запустите эту функцию.

В настоящее время мои шаблоны выглядят следующим образом:

 <html>
<head>
<body>


<table border="1" cellpadding="5" cellspacing="5">

<td>ID</td>
<td>Name</td>

{% for i in data%}

<tr>
<td>{{i.ID}}</td>
<td>{{i.Name}}</td>
</tr>

{% endfor %}

</table>

</body>
</head></html>
  

Ответ №1:

Вы можете просто создать ссылку href после вашего td. В своих представлениях вы можете выполнять функцию. Вам нужно определить функцию, которая принимает аргумент id.

 <html>
<head>
<body>


<table border="1" cellpadding="5" cellspacing="5">

<td>ID</td>
<td>Name</td>

{% for i in data%}

<tr>
<td>{{i.ID}}</td>
<td> <a href="/yourpath/{{i.id}}"{{i.Name}}></td>
</tr>

{% endfor %}

</table>

</body>
</head></html>


  
 
def your_function_name(request, YOUR_ID):

   # code

  

Также в вашем urls.py

 
urlpatterns= [
    path('your_path/<your_id>/', views.your_function_name, name='your_name'),
]


  

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

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

2. когда вы нажимаете на элемент в таблице, он переходит на ваш path. < > здесь вы передаете свой аргумент в свой path, а также в свою функцию. после запроса он ожидает от вас предоставления аргумента функции. после этого все остальное — простой python.

3. я не смог его получить, не могли бы вы отредактировать свое решение и сделать его более подробным, пожалуйста?

4. Вы пытались выполнить мое решение так, как оно есть в ответе?

5. ага, и там написано, что страница не найдена