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

时间:2019-06-18 21:00:16

标签: 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 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的新手。谢谢!

1 个答案:

答案 0 :(得分:1)

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

关注您的评论...

 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']行未返回任何内容,然后尝试在cwObj.get_sites(company_id)中使用它导致了参考错误