devildayne
@devildayne

Как обработать нажатие на ссылку django?

Начал учить django,появился вопрос
Пишу простую текстовую веб-игру
Есть у меня страница "Бои" против других игроков(Система предельно простая. Нажимаем на кнопку "напасть" считаем по формуле кто победил и выводим,без какой либо-визуализации)
Есть модель героя,со своими характеристиками(которая возвращает ID который я использую для генерации url ссылки )

urls.py
urlpatterns = [
    path('', main_page,name='main_page'),
    path('swap-hero/', swap_hero, name='swap-hero'),
    path('store/', store, name='buyhero'),
    path('store/<int:id>',buyhero,name='buyhero'),
    path('profile/',profileUrl,name='profileUrl'),
    path('fight/',fightPage,name='fightPage'),
    path('buff/',buffHero,name='buffHero'),
    path('castle/',UserCastle,name='UserCastle'),
    path('fight/<int:id>',fightPage,name='makefight'),
]


На странице fight.html вывожу список противников в цикле,каждая ссылка "Напасть" имеет вид:
<a href="fight.get_absolute_url">Напасть</a>

Вопрос такой, как обработать нажатие на ссылку?
Ничего конкретного даже на теории не нашел(Разве что понял, что обычная views не может обрабатывать POSTи стоит копать в сторону Class-based-Views)
  • Вопрос задан
  • 507 просмотров
Пригласить эксперта
Ответы на вопрос 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Ничего конкретного даже на теории не нашел

Это есть в руководстве Django.

Разве что понял, что обычная views не может обрабатывать POSTи стоит копать в сторону Class-based-Views

Плоховато у вас с пониманием. Во-первых, обычная view может обработать POST-запрос. Во-вторых, CBV - это про организацию кода.
Ответ написан
Комментировать
Guest007
@Guest007
Django, Python, Linux и всё такое...
на странице fight.html добавь ссылкам аттрибуты id (уникальные, само-собой) и поставь обработцик on("click") пользуясь, к примеру, JQuery в конце страницы. И пусть по этому онклик'у выполняется AJAX запрос нужного тебе вида. Так и страницу перезагружать не придётся и запросы можно строить как тебе надо.

И, кстати,
<a href="fight.get_absolute_url">Напасть</a>
не слишком-то правильно...

<a href="{% url 'fightPage' %}">Напасть</a>
Но это ты уже в документации наверняка прочитал...

И, да, "обычная" view делает то, что надо - всё, что ты захочешь :-)
POST запросы принимать - так точно может
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы