以下是我希望能够将一个变量传递给另一个变量的函数示例。
def foo(request):
if request.method == "POST":
unique_id = request.POST.get('per_id','')
baz = get_object_or_404(Name, pk=unique_id)
return render(request, 'details/guy.html', {'baz': baz})
return render(request, 'details/person.html')
def bar(request):
if request.method == "POST":
baz = get_object_or_404(Name, pk=unique_id)
return render(request, 'details/guy.html', {'baz': baz})
return render(request, 'details/guy.html')
问题在于:
local variable 'unique_id' referenced before assignment
那么,如何让这个变量从foo(请求)函数提供给bar(请求)函数?
我知道我可以使用cPickle,但这个网站获得的流量几乎肯定会导致cPickle对象与另一个人混在一起。
答案 0 :(得分:0)
会话变量应该稀疏使用。
def foo(request):
if request.method == "POST":
unique_id = request.POST.get('per_id','')
request.session["unique_id"] = unique_id
baz = get_object_or_404(Name, pk=unique_id)
return render(request, 'details/guy.html', {'baz': baz})
return render(request, 'details/person.html')
def bar(request):
if request.method == "POST":
baz = get_object_or_404(Name, pk=request.session["unique_id"])
del request.session["unique_id"]
return render(request, 'details/guy.html', {'baz': baz})
return render(request, 'details/guy.html')
我不建议,但也可以使用全局变量。
unique_id = None
def foo(request):
global unique_id
unique_id = 10
def bar(request):
print unique_id