Django - кнопка, перенаправляющая на {% url 'index' %}

Не могу найти решение ни в одной статье, поэтому спрашиваю здесь. Я хочу сделать кнопку, которая будет перенаправлять пользователя на определенный url. Я уже сделал это следующим образом:

<button onclick="location.href='create_recipe/'" type="button" >Create new Recipe</button>

но вместо передачи всей ссылки я хотел бы использовать {% url 'some_view' %} но я не представляю как это сделать. Возможно ли это вообще сделать

?

Должно быть <button>,

редактирование:

что-то вроде:

<button type="button" class="btn btn-outline-secondary"><a href="{% url 'index' %}">Create new Recipe</a></button>

также не работает

Вы можете сделать это, добавив к кнопке следующее:

onclick="goToSomeView()"

А затем вот это в один из ваших JS файлов, как указано ниже Sunderam Dubey:


function goToSomeView(){
    document.location.href = "{% url 'some_view' %}"
}

index это ваша функция, которая существует views.py файле.

from django.urls import path
from . import views

path('',views.index, name='index'), 

HTML:

<a class="btn btn-outline-secondary"  href="{% url 'index' %}">Create new Recipe</a>

Как я вижу, вы уже используете bootstrap, поэтому самый простой способ - использовать элемент a с атрибутом type="button".

<a href="{% url 'index' %}" type="button" class="btn btn-outline-secondary">Create new recipe</a>

Ниже видно, что результат тот же, но для button нужно привязать функцию onclick. В данном случае я указал на ответ @nigel239.

   function goToSomeView(){
    document.location.href = "{% url 'index' %}"
   }
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.2.0/css/bootstrap.min.css" rel="stylesheet"/>
<p class="lead">Using 'a' element</p>
<a href="{% url 'index' %}" type="button" class="btn btn-outline-secondary">Create new recipe</a>
<p class="lead mt-3">Using button</p>
<button onclick="goToSomeView()" class="btn btn-outline-secondary">Create new recipe</button>

Вернуться на верх