在Ajax'POST'之后重定向

时间:2019-05-11 08:32:39

标签: django django-rest-framework django-views

我有一个添加产品列表的代码。当用户单击按钮时,会调用一个函数,该函数通过使用Ajax将产品列表发送到视图。

function submition(container){
     $.ajax({
        url :'/compare_in/',
        type : "POST",
        data : {
            com_list : container,
            csrfmiddlewaretoken: '{{ csrf_token }}'
        },
        success : function() {
            console.log('success')
        },
        error : function() {
            console.log('Failure');
        }
    });

}

网址:

urlpatterns = [path('compare_in/', views.compare_in)]

现在在视图代码中,产品的列表值是通过列表值来操作和抓取数据并将数据存储在字典中

def compare_in(request):
  if request.method == 'POST':
    compare_res = request.POST.getlist('com_list[]')
    for item in range(len(compare_res)):
        if re.compile('edmi').search(compare_res[item]):
            compare_res[item] = 'xiaomi ' + compare_res[item]
    phone_list = ','.join(e.lower() for e in compare_res)
    phone_list = '-'.join(phone_list.split())
    .
    .
    .
    return HTTPResponse()

现在我想使用词典的值重定向到其他页面。

笔记返回render()不起作用

1 个答案:

答案 0 :(得分:0)

从另一个线程查看此答案:Django: How do I redirect a post and pass on the post data

另外,重定向时通过URL参数传递数据也是个好主意。

from django.shortcuts import redirect

def compare_in(request):
    # rest of your code

    return redirect('https://example.com/{0}'.format(some['data']))

Django文档:https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#redirect

示例代码:https://simpleisbetterthancomplex.com/tips/2016/05/05/django-tip-1-redirect.html