我有兩個函數,在Django模板。如何將一個函數變量用於另一個函數?
def cart(request, template="shop/cart.html"):
cart_formset = CartItemFormSet(instance=request.cart)
def checkout_steps(request):
我如何使用cart_formset變量在我checkout_steps功能。。
我有兩個函數,在Django模板。如何將一個函數變量用於另一個函數?
def cart(request, template="shop/cart.html"):
cart_formset = CartItemFormSet(instance=request.cart)
def checkout_steps(request):
我如何使用cart_formset變量在我checkout_steps功能。。
你不能。這就是局部變量:它們是它們所在函數的本地變量。除非執行cart
,否則變量cart_formset
不存在。
您可以從該函數返回cart_formset
,然後從checkout_steps
調用cart
以獲取該值。或者你可以在其他地方存儲該變量。我不知道Django是否知道最好的地方在哪裏。考慮到你在做什麼看起來像一個購物車設置,我猜想你想在會話中存儲這些信息,所以你可以看看Django的會話處理。
我如何使用cart_formset變量在我checkout_steps功能..
如果這兩個功能是相關的,使用一個類(如購物中心)和 添加購物車及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
你也可以把變量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
如果功能評價的順序是確定的,那麼你可以使用一個裝飾
當我使用這個變量作爲全局或在類中。它顯示錯誤.. –
當我把它用作全局或在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個參數) –