Как ссылаться на переменную с другого взгляда (Django) - PullRequest
0 голосов
/ 19 июня 2019

Я хотел бы использовать переменную вне функции, в которой она была определена.Я только когда-либо передавал данные в разные шаблоны и впоследствии мне не приходилось ссылаться на эти данные, поэтому я не уверен, как мне поступить.

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 Ответ

1 голос
/ 19 июня 2019

На какую переменную вы ссылаетесь в этом примере? Также обратите внимание, что ваш код предполагает, что 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) вызвала ошибку ссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...