P
Pisych15 марта 2023 г. 2:13

Почему не работает редирект?

Добрый день! Я не использую формы Джанго, а провожу добавление записи с помошью ajax. В общем, суть такая. Добавляю в таблицу реквизиты документа (номер, дата и т.д.). После сохранения хочу перейти на страницу с этим же документом, чтобы продолжить редактирование - добавление табличной части и т.д. А редирект не срабатывает...
Вот часть кода. Редирект на home просто в качестве примера:

def JurnalOst(request):
    podraz = Podraz.objects.get(pk=74)
    postav = Postav.objects.get(pk=9)
    obct = Obct.objects.get(pk=180)
    fio = Fio.objects.get(pk=5)
    jurnalost=Jurnal.objects.filter(oper=1)
    if request.method=='POST':
        nomerdoc1=request.POST['nomerdoc']
        datadoc1=request.POST['datadoc']
        print(nomerdoc1,datadoc1)
        newost=Jurnal()
        newost.nomerdoc=nomerdoc1
        newost.datadoc=datadoc1
        newost.podraz=podraz
        newost.postav=postav
        newost.obct=obct
        newost.fio=fio
        newost.oper=1

        newost.save()
        un = Jurnal.objects.values()
        unit_data=list(un)
        print(newost.id)
        return redirect('home')
        #return JsonResponse({'status':1,'unit_data':unit_data})

Вот url

urlpatterns=[
   path('', loginUser, name='loginUser'),
   # другие --------
   path('main/',index,name='home'),
   ]

А вот ajax

<script>
console.log('Script running!');
$('#ost-form').on('submit',function(e){
event.preventDefault();
let _nomerdoc=$('#id_nomerdoc').val();
let _datadoc=$('#id_datadoc').val();
let _csr=$("input[name=csrfmiddlewaretoken]").val();

mydata={
nomerdoc:_nomerdoc,
datadoc:_datadoc,
csrfmiddlewaretoken:_csr,
}



console.log('Pressed');
console.log(_nomerdoc);
console.log(_datadoc);
console.log(mydata);

$.ajax({
url:'/JurnalOst/',
method:"POST",
data:mydata,
dataType:"json",

success:function(data){
if (data.status==1){
console.log(data.unit_data);
console.log('saved');

}
}

});
});
</script>
Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

1
Evgenii Legotckoi
  • 15 марта 2023 г. 5:08

Добрый день!
Через Ajax редирект и не будет работать. Вам нужно вернуть JsonResponse и обработать его в на клиентской стороне в скрипте вызов Ajax.

То есть вызвать редирект в этой функции

success:function(data){
if (data.status==1){
console.log(data.unit_data);
console.log('saved');

}

    Комментарии

    Только авторизованные пользователи могут публиковать комментарии.
    Пожалуйста, авторизуйтесь или зарегистрируйтесь
    AD

    C++ - Тест 004. Указатели, Массивы и Циклы

    • Результат:50баллов,
    • Очки рейтинга-4
    m
    • molni99
    • 26 октября 2024 г. 1:37

    C++ - Тест 004. Указатели, Массивы и Циклы

    • Результат:80баллов,
    • Очки рейтинга4
    m
    • molni99
    • 26 октября 2024 г. 1:29

    C++ - Тест 004. Указатели, Массивы и Циклы

    • Результат:20баллов,
    • Очки рейтинга-10
    Последние комментарии
    ИМ
    Игорь Максимов22 ноября 2024 г. 11:51
    Django - Урок 017. Кастомизированная страница авторизации на Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
    Evgenii Legotckoi
    Evgenii Legotckoi31 октября 2024 г. 14:37
    Django - Урок 064. Как написать расширение для Python Markdown Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
    A
    ALO1ZE19 октября 2024 г. 8:19
    Читалка fb3-файлов на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
    ИМ
    Игорь Максимов5 октября 2024 г. 7:51
    Django - Урок 064. Как написать расширение для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
    d
    dblas55 июля 2024 г. 11:02
    QML - Урок 016. База данных SQLite и работа с ней в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
    Сейчас обсуждают на форуме
    m
    moogo22 ноября 2024 г. 7:17
    Mosquito Spray System Effective Mosquito Systems for Backyard | Eco-Friendly Misting Control Device & Repellent Spray - Moogo ; Upgrade your backyard with our mosquito-repellent device! Our misters conce…
    Evgenii Legotckoi
    Evgenii Legotckoi24 июня 2024 г. 15:11
    добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
    t
    tonypeachey115 ноября 2024 г. 6:04
    google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
    NSProject
    NSProject4 июня 2022 г. 3:49
    Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…

    Следите за нами в социальных сетях