Генерация данных при нажатии на кнопку/ссылку Django
Я очень новичок в Django и веб-приложениях. У меня есть HTML страница, которая позволяет пользователям искать имена игроков в базе данных. В ответ выдается HTML-таблица. Каждая запись - это показатели игрока по отношению к игре, в которой он играл. Каждая игра имеет 10 игроков, связанных с ней
search_db.html
<h1>Search Results for: {{searched}}</h1>
<table>
{% for player in match %}
<tr>
<td>
<a href=search_player_db/{{player.match_id}}>{{player.match_id}}</a>
</td>
<td>{{ player.name}}</td>
<td>{{ player.role}}</td>
<td>{{ player.win_or_loss}}</td>
</tr>
{% endfor %}
</table>
{{IM TRYING TO GENERATE DATA HERE}}
Идентификатор матча - это ссылка, которая ведет пользователя на страницу с дополнительной информацией, связанной с матчем
match_details.html
{%block stats%}
<body>
<h1>Winning team</h1>
{%for player in winners %}
<li>
{{player.name}}
{{player.role}}
</li>
{%endfor%}
<h1>Losing team</h1>
{%for player in losers %}
<li>
{{player.name}}
{{player.role}}
</li>
{%endfor%}
</body>
{%endblock%}
Вместо перенаправления на новую страницу при нажатии на ссылку, я хотел бы загрузить содержимое из match_details.html
в страницу под таблицей на search_db.html
через кнопку/ссылку в search_db.html
. Таким образом, пользователь может кликать по результатам поиска
views.py
def search_playerdb(request):
if request.method == "POST":
searched = request.POST['searched']
players = PlayerInfo.objects.filter(player_name__contains=searched)
context={
'searched': searched,
'players': players}
return render(request, 'searchdb.html', context)
else:
return render(request, 'searchdb.html', {})
def display_match(request, matchid):
match = PlayerInfo.objects.filter(match_id=matchid)
winners = match.filter(win_or_loss=True)
losers = match.filter(win_or_loss=False)
context = {
'match': match,
'winners': winners,
'losers': losers,}
return render(request, 'match_details.html', context)
Для этого вам потребуется использовать Javascript для выполнения вызова AJAX. Если вы не знаете, AJAX-вызов позволяет веб-странице отправлять или получать данные без необходимости обновлять страницу.
Это можно сделать, используя чистый javascript - Пример https://www.w3schools.com/xml/ajax_intro.asp
Или вы можете использовать библиотеку, чтобы абстрагироваться от некоторых сложностей. Примером может служить JQuery https://www.w3schools.com/jquery/ajax_ajax.asp
В любом случае, вы будете вызывать новый URL на вашем сайте.