-1

我在Django 模板中有两个功能。

def cart(request, template="shop/cart.html"):
 cart_formset = CartItemFormSet(instance=request.cart)

def checkout_steps(request):

我如何在我的checkout_steps 函数中使用cart_formset变量。.

4

2 回答 2

1

我如何在我的 checkout_steps 函数中使用 cart_formset 变量..

  1. 如果这两个函数相关,则使用一个类(如 Shopping)并将 cart 和 checkout_steps 添加为成员函数。

    class Shopping(object):
        def __init__(self):
            self.cart_formset = None
        def cart(self, request, template="shop/cart.html"):
            self.cart_formset = CartItemFormSet(instance=request.cart)
        def checkout_steps(self, request):
            #Use self.cart_formset
    
  2. 您还可以将变量 cart_formset, 作为全局变量,使其在整个模块中全局可用

    def cart(request, template="shop/cart.html"):
         global cart_formset
         cart_formset = CartItemFormSet(instance=request.cart)
    def checkout_steps(self, request):
         #Use self.cart_formset
    
  3. 如果函数评估的顺序是确定性的,那么您可以使用装饰器

于 2012-12-26T07:26:08.260 回答
1

你不能。这就是局部变量:它们对于它们所在的函数是局部的。cart_formset除了执行时,该变量不存在cart

您可以cart_formset从函数返回,然后调用cartfromcheckout_steps以获取值。或者您可以将该变量存储在其他地方。我对 Django 的了解还不够,不知道最好的地方在哪里。鉴于您正在做的事情看起来像一个购物车设置,我猜您想将该信息与会话一起存储,因此您可以查看 Django 的会话处理。

于 2012-12-26T07:24:02.227 回答