Как сделать редирект с помощью ajax и django? - PullRequest
0 голосов
/ 25 мая 2019

У меня есть форма, которая создает новую запись в БД.Это работает из-за AJAX.У меня есть аргумент «id», который создается автоматически при создании новой записи (после заполнения формы).Я хочу использовать этот идентификатор, потому что мне нужно перенаправить пользователей на страницу /127.0.0.1:8000/, когда они заполняют форму или, возможно, просто распечатывают эту ссылку на странице.Как я могу это сделать?

views.py

def add_new(request):
    """ Function which upload new file to UploadModel. """

    form_upload = UploadForm(request.POST, request.FILES, prefix='upload_form')
    if form_upload.is_valid() and request.is_ajax():
        new_file = form_upload.save(commit=False)
        if request.user.is_authenticated:
            new_file.author = request.user
        new_file.created_date = date.today()
        new_file.is_worked = True
        if new_file.ended_date <= date.today():
            new_file.is_worked = False
            new_file.delete()
        else:
            new_file.is_worked = True
        new_file.save()
        return redirect('index')
    form_upload = UploadForm()
    return render(request, 'sharing/index.html', {'form_upload': form_upload})

js file

function upload(event) {
    event.preventDefault();
    var data = new FormData($('form').get(0));

    $.ajax({
        url: $(this).attr('data-url'),
        type: $(this).attr('method'),
        data: data,
        cache: false,
        processData: false,
        contentType: false,
        success: handleSuccess(),
    });
    return false;
}

function handleSuccess(){
    $("form")[0].reset();
    alert('Success uploading!');
    window.location.href = '/';

}

$(function() {
    $('form').submit(upload);
});

1 Ответ

0 голосов
/ 25 мая 2019
import json
from django.http import HttpResponse

def add_new(request):
    """ Function which upload new file to UploadModel. """

    form_upload = UploadForm(request.POST, request.FILES, prefix='upload_form')
    if form_upload.is_valid() and request.is_ajax():
        new_file = form_upload.save(commit=False)
        if request.user.is_authenticated:
            new_file.author = request.user
        new_file.created_date = date.today()
        new_file.is_worked = True
        if new_file.ended_date <= date.today():
            new_file.is_worked = False
            new_file.delete()
        else:
            new_file.is_worked = True
        new_file.save()
        response_data = {}
        response_data['form_upload'] = UploadForm()
        return HttResponse(json.dumps(response_data),content_type="application/json")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...