我想在定义它的函数之外使用一个变量。我只将数据传递到不同的模板,之后不必再引用该数据,因此我不确定应该如何进行。
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的新手。谢谢!
答案 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)
中使用它导致了参考错误