Python Django和JSON请求

Python Django和JSON请求,python,django,json,django-views,jsonresult,Python,Django,Json,Django Views,Jsonresult,在模板中,我有以下代码 <script> var url="/mypjt/my_timer" $.post(url, paramarr, function callbackHandler(dict) { alert('got response back'); if (dict.flag == 2) { alert('1'); $.jGrowl("Data

在模板中,我有以下代码

<script>
    var url="/mypjt/my_timer"

    $.post(url, paramarr,
    function callbackHandler(dict)
    {
        alert('got response back');
        if (dict.flag == 2)
        {
            alert('1');
            $.jGrowl("Data could not be saved");
        }
        else if(dict.ret_status == 1)
        {
            alert('2');
            $.jGrowl("Data saved successfully");
            window.location = "/mypjt/display/" + dict.rid;
        }
    },
    "json"
    );
</script>
由于我们正在发出一个JSON请求,并且在try块中,在设置了标志之后,我们不能直接返回一个页面吗

return render_to_response('mypjt/display.html',context_instance=RequestContext(request,{'dict': dict}))
而不是发送响应,因为在HTML页面中再次成功时,我们重定向代码

此外,如果存在异常,那么我们只能返回JSON请求


我唯一关心的是,客户端和服务器之间的交互应该是最小的。

如果我理解正确,您正在嗅探JavaScript中的返回代码,然后根据结果重定向

您可以从Django执行重定向,因此我可以这样做,而不用担心返回代码。当您同时拥有“标志”和“ret_状态”时,这是一个提示,提示您应该重新思考您的设计:


此外,应避免在Python代码中隐藏内置的
dict
对象。

如果您按照您所说的那样进行响应

返回 render_to_response('mypjt/display.html',context_实例=RequestContext(请求,{'dict': dict})

JavaScript代码将接收您的响应,而不是导航器。我想你可以这样想:

<script>
   $(document).ready(function()
   {
      $('#yourForm').submit();
   });
</script>

<form id="yourForm" action="/mypjt/my_timer" method="post">
...
your fields with data, even they are hidden
...
</form>
或者,您可以像以前一样执行,但是如果查询“timer.objects.get(pk=1)”失败,例如,您将返回一个布尔标志响应。因此,当它是确定的,你重定向到你喜欢的页面

我希望它能对你有用

<script>
   $(document).ready(function()
   {
      $('#yourForm').submit();
   });
</script>

<form id="yourForm" action="/mypjt/my_timer" method="post">
...
your fields with data, even they are hidden
...
</form>
 def my_timer(request):
     dict={}
     try:
         a=  timer.objects.get(pk=1)

         dict({'flag':1})
         return render_to_response('mypjt/display.html',context_instance=RequestContext(request,{'dict': dict}))
     except:
         dict({'flag':0})
         return render_to_response('mypjt/error_not_found.html',context_instance=RequestContext(request,{'dict': dict}))