Django Admin: Как использовать кнопку для перехода к выбранному URL?

Я очень новичок в Django и пытаюсь сделать свой первый проект. Мне трудно использовать созданные мной кнопки для перехода к выбранному URL.

Допустим, мое приложение называется TestForms, а моими моделями являются: Patients, General, PST и ERBT. Я хочу создать две кнопки - 'Previous' и 'Next', которые будут использоваться для перехода к предыдущей/следующей формам соответственно. Я пытаюсь сделать это с помощью шаблонов администратора в django.

NOTE: Я знаю, что изменение встроенных шаблонов не очень хорошая идея, я создам новый html файл для расширения этих шаблонов, прежде чем делать изменения на сервере. Пока что я делаю это локально на своем компьютере.

В submit_line.html я создал две новые кнопки и они выглядят следующим образом:

{% if show_save_and_go_to_next_form %}<input type="submit" value="{% translate 'Next' %}" class="default" name="_gotonextform">{% endif %}
{% if show_save_and_go_to_previous_form %}<input type="submit" value="{% translate 'Previous' %}" class="default" name="_gotopreviousform">{% endif %}

Это дает мне две хорошо выглядящие кнопки на сайте.

Но они просто сохраняют результаты (работают как кнопка 'Save'), но не перенаправляют меня на следующую форму, как я хотел бы. Когда я добавляю нового пациента (admin/TestForms/patient/add/), после нажатия на кнопку "Далее" я хотел бы, чтобы сервер сохранил этого пациента и перенаправил меня на admin/TestForms/general/add/, чтобы я мог заполнить следующую форму, затем сохранить изменения и перейти к admin/TestForms/PST/add/ и так далее.

Я знаю, что должен добавить якорь <a href="..."> </a>, но я пробовал несколько раз с разными подходами и ничего не получилось. Когда я пытаюсь использовать <a href ...>, кнопка исчезает. Также мне трудно понять, как перейти от одной формы к другой и отключить кнопку "Предыдущая" на первой форме и кнопку "Следующая" на последней.

Есть предложения, как этого достичь?

Перенаправление должно быть сделано в вашем представлении, а не в шаблоне.

def your_view(request, *args, **kwargs):
    # your code ...
    if request.POST.get('_gotonextform'):
        return redirect('admin/TestForms/general/add/')
    else:
        # do whatever you like if any other button was clicked
        pass
Вернуться на верх