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