2012-12-26 112 views

回答

1

你不能。這就是局部變量:它們是它們所在函數的本地變量。除非執行cart,否則變量cart_formset不存在。

您可以從該函數返回cart_formset,然後從checkout_steps調用cart以獲取該值。或者你可以在其他地方存儲該變量。我不知道Django是否知道最好的地方在哪裏。考慮到你在做什麼看起來像一個購物車設置,我猜想你想在會話中存儲這些信息,所以你可以看看Django的會話處理。

1

我如何使用cart_formset變量在我checkout_steps功能..

  1. 如果這兩個功能是相關的,使用一個類(如購物中心)和 添加購物車及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. 如果功能評價的順序是確定的,那麼你可以使用一個裝飾

+0

當我使用這個變量作爲全局或在類中。它顯示錯誤.. –

+0

當我把它用作全局或在class.It顯示錯誤。 類購物(對象): \t DEF __init __(個體): \t \t self.cart_formset =無 DEF車(個體,請求,模板= 「店/ cart.html」): \t cart_formset = CartItemFormSet(例如= request.cart) \t - DEF checkout_steps(個體,請求): - \t QWERT = self.cart_formset \t上下文= { 「形式」:形式, 「CHECKOUT_STEP_FIRST」:CHECKOUT_STEP_FIRST, \t \t \t 「QWERT」: qwert} \t return render(request,template,context) ERROR IS: TypeError at/shop/cart/ cart()至少需要2個參數(給出1個參數) –

相關問題