簡體   English   中英

UnboundLocalError:分配前已引用局部變量“ r”(Django)

[英]UnboundLocalError: local variable 'r' referenced before assignment (Django)

我想在通過RESTful API調用cwObj.get_company(company)創建的對象company_obj引用項目company_id的值,然后將該值傳遞給另一個API調用cwObj.get_sites(company_id) ,然后返回該對象。 但是,當我嘗試將company_id傳遞給API調用時,出現了UnboundLocalError錯誤。 通過調試,我可以看到company_id具有所需的值,因此我不確定為什么無法使用該值創建另一個對象。 這是否意味着確實分配了變量? 如果沒有,在變量到達cwObj.get_sites()調用之前分配變量的最佳實踐是什么? 請讓我知道是否需要更多信息,謝謝!

views.py

def new_opportunity_location(request):
    company = request.GET.get('selected_company')
    company_obj = cwObj.get_company(company)
    company_id = company_obj[0]['id']
    sites = cwObj.get_sites(company_id)
    context = {'sites': sites}
    return render(request, 'website/new_opportunity_location.html', context)

    def get_company(self, request):
        try:
            r = requests.get(
                self.URL + 'company/companies?conditions=name="' + request + '"',
                headers=self.Header)
            r.raise_for_status()
        except:
            print(r.text)
            raise
        return r.json()

    def get_sites(self, request):
        try:
            r = requests.get(
                self.URL + 'company/companies/' + request + '/sites',
                headers=self.Header)
            r.raise_for_status()
        except:
            print(r.text)
            raise
        return r.json()

r = requests.get(...) print(r.text) r = requests.get(...)行中發生了一些異常,因此,從不將r分配給該對象,並且在執行print(r.text)時該變量不存在。

這就是為什么您不應該裸露的原因except: -您不知道現在發生了哪種異常。 只抓住您期望發生的事情。

我的猜測是“ self.Header”不存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM