Python 如何从不同视图引用变量(Django)

Python 如何从不同视图引用变量(Django),python,django,Python,Django,我想在定义它的函数之外使用一个变量。我只将数据传递到不同的模板,之后不必引用这些数据,因此我不确定应该如何继续 views.py def new_opportunity_company_id(request): company = request.GET.get('selected_company') company_obj = cwObj.get_company(company) company_id = company_obj[0]['id'] return

我想在定义它的函数之外使用一个变量。我只将数据传递到不同的模板,之后不必引用这些数据,因此我不确定应该如何继续

views.py

def new_opportunity_company_id(request):
    company = request.GET.get('selected_company')
    company_obj = cwObj.get_company(company)
    company_id = company_obj[0]['id']
    return company_id


def new_opportunity_location(request):
    for company_id in new_opportunity_company_id(request):
        locations = cwObj.get_sites(company_id)
        context = {'locations': locations}
    return render(request, 'website/new_opportunity_location.html', context)

任何帮助都将不胜感激,我对Django/Python还是新手。谢谢

本例中您指的是哪个变量?另外请注意,您的代码假设company_obj[0]['id']是一个列表,因为您试图在新的_opportunity_位置迭代它。您应该尝试访问函数范围外的变量的次数并不经常出现。它们可以是全局类变量,也可以是传递的函数参数。除此之外,您可能需要重新考虑您的方法,使您的代码更直接

跟进你的评论

 def new_opportunity_location(request):
        company = request.GET.get('selected_company')
        company_obj = cwObj.get_company(company)
        company_id = company_obj[0]['id']
        locations = cwObj.get_sites(company_id)
        context = {'locations': locations}

        return render(request, 'website/new_opportunity_location.html', context)

我想你有类似的东西?赋值前的引用意味着您试图访问尚未设置的变量。这可能意味着行company_id=company_obj[0]['id']返回none,然后试图在cwObj.get_sitescompany_id中使用它,导致了一个引用错误

我想访问公司id,并将该值作为参数传递到cwObj.get_sitescompany_id中。我最初试图在同一个函数中处理此问题,但在赋值错误之前遇到了引用的局部变量。@garmars请查看我的更新版本回答:比较容易回答format@cuylery没错,在调用变量之前,我应该如何分配它?@garmars什么是cwObj?它在您的原始代码中同样未定义。@garmars基于我提供的代码,每一行都依赖于上面的一行。因此,您可能会对“company\u obj=cwObj.get\u companycompany”也不存在异议。就我个人而言,我会通过打印e.I.printcompany_obj、printcompany_id来查看每行后面每个变量的值。在您尝试设置这些变量之后。这将让你更深入地了解你的假设正在发生但目前没有发生的事情。我记不清我用打印调试过多少次了