如果我这样用我的观点:
def test(request):
order = Order.objects.filter(status='new')
context = {}
context['order_list'] = order
return render(request, 'checkout/order.html',context)
上下文变量order_list
工作正常,它在模板上呈现,
但是在得到queryset对象之后,order
我想更新数据库,所以我这样做了:
更新在数据库上运行良好,但也更改了我的上下文变量oder_list
,它在模板上变为空。
为什么order
对象也被更新?我做错什么了吗?在
我不认为你做了什么错事,但这只是Django处理查询集的方式。所以当你这么做的时候
queryset只“标记”以供计算,而实际求值发生在您尝试处理模板中的记录时。在
这就是原因,当你这么做的时候
^{pr2}$上下文变量具有反映更新的值。在
如果某个对象已被查看,您似乎正在尝试将状态更新为“警告”-正确吗?在
如果是这样的话,您可以处理这个问题的一种方法是-一旦页面被呈现,您就可以发送一个ajax请求来更新id列表的状态。在
另一种效率较低的方法是在更新之前评估queryset—类似于:
相关问题 更多 >
编程相关推荐