P
Feb. 16, 2023, 1:59 p.m.

Можно ли обойтись без redirect() ?

Добрый день! На странице две формы, каждая со своим ID и сабмитом... Одна из форм (form2) показывается в модальном окне... Все хорошо работает, при нажатии на кнопку на странице отображается модальное окно, заполняется форма, все сохранаяется... Но! При сохранении во view стоит редерект на эту же страницу и она естественно, перерисовывается. Мне это не надо. Мне надо просто сохранить данные в модальном окне и закрыть его... Чем заменить redirect, чтобы просто остаться на этой же странице? Я пробовал return HttpResponseRedirect(request.META.get('HTTP_REFERER')), но это не то...
Вот часть view:

  1. if request.method == 'POST':
  2. form=NomForm(request.POST)
  3. form2=UnitForm(request.POST)
  4. print(request.POST)
  5. if form.is_valid():
  6. form.save()
  7. return redirect('NomList')
  8. if form2.is_valid():
  9. form2.save()
  10. return redirect('NomList')
  11. else:
  12. form=NomForm()
  13. form2=UnitForm()
  14. return render(request,'store/spr/NomList.html',{'title':"Номенклатура",'unit':unit,'form':form,'form2':form2,
  15. 'btn_caption': 'Добавить', 'brd_class': 'border-secondary',
  16. 'btn_class': 'btn-primary', 'pic_label': 'Номенкл.',
  17. 'base_url': 'NomList', 'update_url': 'NomUpdate',
  18. 'delete_url': 'NomDelete'})

Интересует return в form2. Как просто вернуться на страницу, не обновляя?

2

Do you like it? Share on social networks!

4
Evgenii Legotckoi
  • Feb. 16, 2023, 3:52 p.m.

Добрый день! У меня для вас есть идея по поводу реализации вашего функционала.
Как я понял, вы вызываете модальное popup окно и делаете некоторые действия, которые потом возвращаетесь в предыдущую форму.
В прошлом году я реализовывал следующий функционал.

У меня есть посты и коллекции, при создании поста, я могу в форме поста создать коллекцию через popup окно, а потом новая коллекция автоматически добавляется в поле коллекция в форме поста.

То есть это работает как в админке Django.

Для этого я использовал готовую батарейку, которая называется django_addanother

Посмотрите её, может это вам подойдёт.

    P
    • Feb. 16, 2023, 4:18 p.m.

    Спасибо, посмотрю. Да, задача у меня, как вы поняли, следующая: отобразить страницу, вызвать модальное окно с формой, ввести данные,сохранить их в таблицу и закрыть модальное окно. Всё! Просто закрыть и не обновлять исходную страницу... Вот с этим и мучаюсь... Просто хотелось узнать, можно ли только стандартными инструментами Джанго это реализовать. Казалось бы, чего проще - вернутся туда, откуда и пришел... Наверное, без сторонних пакетов или того же Ajax эта задача нерешаема...
    Спасибо!

      Evgenii Legotckoi
      • Feb. 16, 2023, 4:23 p.m.

      Здесь точно нужно использовать Ajax. Посмотрите тот сторонний пакет, он не очень сложно настраивался, насколько помню.

        P
        • Feb. 16, 2023, 4:25 p.m.

        ок

          Comments

          Only authorized users can post comments.
          Please, Log in or Sign up
          • Last comments
          • Evgenii Legotckoi
            March 9, 2025, 9:02 p.m.
            К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
          • VP
            March 9, 2025, 4:14 p.m.
            Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
          • ИМ
            Nov. 22, 2024, 9:51 p.m.
            Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
          • Evgenii Legotckoi
            Oct. 31, 2024, 11:37 p.m.
            Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
          • A
            Oct. 19, 2024, 5:19 p.m.
            Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html