Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将变量从一个函数发送到另一个函数?_Python_Django - Fatal编程技术网

Python 如何将变量从一个函数发送到另一个函数?

Python 如何将变量从一个函数发送到另一个函数?,python,django,Python,Django,下面是一个函数的示例,我希望能够将一个变量传递给另一个变量 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})

下面是一个函数的示例,我希望能够将一个变量传递给另一个变量

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(request)函数馈送到bar(request)函数呢


我知道我可以使用cPickle,但该网站的访问量几乎肯定会导致cPickle对象与其他人混淆。

会话变量应少量使用

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

为什么不干脆把它放在他们的会议上呢?我不明白你是如何从一个foo到另一个bar的。你在重定向吗?为什么你不能像处理其他请求一样将ID放入URL?你是什么意思?将ID粘贴到他们的会话中?你是说一个用户正在登录吗?对Daniel来说,我正在重定向。我不得不编辑原来的帖子(对不起)。我不知道如何通过URL发送。我对Django还是新手,它不是重定向,您只是使用不同的模板呈现输出。您根本不调用视图
。阅读有关返回重定向(…)的文档。