python顺序执行语句_python - django如何控制语句的执行顺序?

问 题

我的需求是这样的,我在页面A点击一个按钮。这个按钮的作用是把页面上的数据post到一个api地址B,与此同时跳转到页面C,我想在页面C显示我刚刚post过来的数据。

我在api视图里设计的是把这些数据保存到数据库的id为1的对象中。如果这个对象已经存在数据库中了,我就删掉这个对象,并新建一个id为1的对象,然后把post过来的数据存进去,以此达到我每次post都能够重置这行数据的目的,不然以前的数据会一直保留。

我的api视图里这样写的:

elif request.method == 'POST':

try: #若数据库中已有记录则修改,否则新建

data = Inheritinfo.objects.filter()[0]

except IndexError:

data = Inheritinfo(id=1)

else:

data.delete()

data = Inheritinfo(id=1)

serializer = InheritinfoSerializer(data, data=request.data)

if serializer.is_valid():

serializer.save()

return Response(serializer.data, status=status.HTTP_201_CREATED)

而在页面C的视图里,我要取出这个id为1的对象,根据里面的数据做一些处理,然后返回数据到页面C上:

def result(request):

inherit_list = []

info = Inheritinfo.objects.filter()[0] #在这里报错了

inherit_list.append(info.bjcr_name)

inherit_list.append(info.po_name)

context={}

context["inherit_list"] = inherit_list

return render(request,"inherit-result.html",context)

而在取这条数据的时候报错Indexerror,应该是执行到这里的时候我在API视图里面把这条数据删掉,还没有新建,所以这里取不到。我需要刷新页面C后才正常显示。

我希望的顺序是:删掉这行数据--新建一行主键一样的数据--取出这行数据并渲染到页面C

而现在的顺序貌似是:删掉这行数据--取出这行数据--取不到而报错--新增这行数据

那么怎么才能达到我跳转到C的时候不报错,能够正常按我希望的顺序执行呢呢?

解决方案

谢谢各位的回答,我暂时这样解决了......:

def result(request):

try:

info = Inheritinfo.objects.filter()[0]

except IndexError:

return redirect(to='result')

别笑我,新手暂时只能这样解决了,以后会学习更好的处理方法的= =

扫一扫关注IT屋

微信公众号搜索 “ IT屋 ” ,选择关注与百万开发者在一起

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值