@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

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

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

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