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}))