我在 Django模板中有两个功能。
def cart(request, template="shop/cart.html"):
cart_formset = CartItemFormSet(instance=request.cart)
def checkout_steps(request):
我如何在 checkout_steps函数中使用 cart_formset 变量。。
答案 0 :(得分:1)
你做不到。这就是局部变量:它们是它们所在函数的本地变量。变量cart_formset
不存在,除非cart
正在执行。
您可以从该功能返回cart_formset
,然后从cart
拨打checkout_steps
以获取该值。或者您可以将该变量存储在其他位置。我不太了解Django知道哪里最好的地方。鉴于你正在做的事情看起来像购物车设置,我猜你想把这个信息存储在会话中,所以你可以看看Django的会话处理。
答案 1 :(得分:1)
我如何在checkout_steps函数中使用cart_formset变量..
如果两个函数相关,请使用Class(如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
您还可以将变量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
如果功能评估的顺序是确定性的,那么你可以使用装饰器