Django希望使用另一个视图中的变量
我在一个名为client_items的视图中有一个项目列表。我希望能够使用变量items_list`这是另一个在client_items中称为edit_order的视图。那么,有没有一种方法可以从不同的角度调用变量?(从另一个视图导入一个变量,并能够在另一个视图中使用此变量)我不能只在client_items视图中编写它,因为它需要一个order_no augment 编辑:这是我的最新观点。我尝试过按编辑顺序创建另一个名为items的视图。在这一点上,我得到'订单'没有定义Django希望使用另一个视图中的变量,django,templates,variables,views,Django,Templates,Variables,Views,我在一个名为client_items的视图中有一个项目列表。我希望能够使用变量items_list`这是另一个在client_items中称为edit_order的视图。那么,有没有一种方法可以从不同的角度调用变量?(从另一个视图导入一个变量,并能够在另一个视图中使用此变量)我不能只在client_items视图中编写它,因为它需要一个order_no augment 编辑:这是我的最新观点。我尝试过按编辑顺序创建另一个名为items的视图。在这一点上,我得到'订单'没有定义 def i
def items_in_edit_order(order_no):
order = models.Order.objects.get(pk = order_no)
return order
def client_items(request, client_id = 0):
client = models.Client.objects.get(pk = client_id)
items = client.storageitem_set.all()
order = items_in_edit_order(order_no)
return render_to_response('items.html', {'items':items, 'client':client, 'order':order}, context_instance = RequestContext(request))
否。编写一个函数返回您感兴趣的值,并从两个视图调用它。否。编写一个函数返回您感兴趣的值,并从两个视图调用它。上面的家伙说的是正确的。您不应该尝试将变量“共享”到不同的视图 但是,如果您必须或有理由这样做,那么您可以将其存储在会话中,然后您可以在访问“请求”的任何视图中访问它
希望这能有所帮助。上面那个家伙说的是对的。您不应该尝试将变量“共享”到不同的视图 但是,如果您必须或有理由这样做,那么您可以将其存储在会话中,然后您可以在访问“请求”的任何视图中访问它
希望能有所帮助。只是补充一下,因为没有人说过这句话,而且你似乎还不明白这一点: 您的
client\u items
视图必须以某种方式访问order\u no
变量。如果由于某种原因,该值没有通过URL传递,则它必须从某处获取该值。只有三个实际位置可以获得此值:
order\u no=order.objects.filter(cart\u user=request.user).order\u no
的操作,该操作将获取与用户当前购物车关联的订单,然后返回order\u no
值订单号
的值,此时您将使用请求保存它。会话['order\u no']=order\u号
。稍后,当您想要检索该值时,只需在视图中使用order\u no=request.session['order\u no']
resp=render\u to\u response(template\u name,locals(),RequestContext(request))
,然后向其写入cookieresp.set\u cookie(“order\u no”,order\u no)
。您可以使用request.COOKIES['order\u no']检索它
还有其他奇怪的地方可以存储值:文件、缓存、其他数据存储格式等。不推荐使用。只是添加,因为没有人说过这一点,而且您似乎还不明白这一点: 您的
client\u items
视图必须以某种方式访问order\u no
变量。如果由于某种原因没有通过URL传递该值,它必须从以下位置获取该值。它只能从三个实际位置获取该值:
order\u no=order.objects.filter(cart\u user=request.user)的操作.order\u no
将获取与用户当前购物车关联的订单,然后返回order\u no
值订单号
的值,此时您将使用request.Session['order\u no']=order\u no
。稍后,当您想要检索该值时,您只需使用订单号=request.Session>即可视图中的['order_no']
resp=render\u to\u response(template\u name,locals(),RequestContext(request))
然后向其写入Cookieresp.set\u Cookie(“order\u no”,order\u no)
。您可以使用request.COOKIES['order\u no']检索它。
还有其他奇怪的地方可以存储值:文件、缓存、其他数据存储格式等。不推荐使用。可能重复@Jordan的可能重复-使用Sessions是最好的方法。一些好信息,谢谢。@Jordan-使用Sessions是最好的方法。一些好信息,谢谢。