#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. ага, и там написано, что страница не найдена