@N0tdefined
20 лет, Киев

Почему функция с кнопки вызывается без нажатия?

Я хочу сделать кнопку удаления обьекта, в шаблоне сделал такую кнопку
<button onclick="{% delete_post '{{i.pk}}' %}">Delete post</button>

В tags такая функция
@register.simple_tag()
def delete_post(pk):
    try:
        post = Post.objects.get(pk=pk)
        post.delete()
    except:
        pass

Но почему-то функция вызывается не при нажатии на кнопку, а просто при загрузке страницы.
  • Вопрос задан
  • 115 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Exenzi
Python/Django/TS/Vue3
Тэги выполняются, когда страница рендерится. Они не для этого сделаны.
Для такого функционала надо делать вьюху, прописать её в urls.py, указав name. И потом этот name указать через {%
url 'name урла' i.pk %}.
И да, в onclick вызывается javascript. Либо делай не кнопку, а ссылку, которая будет вызывать вьюху. Либо пиши javascript, который вызывает вьюху, если хочешь делать без перезагрузки страницы.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы