Локальная переменная 'params' ссылается перед присвоением в django

Вот мое мнение

def ATFinfo(Request):
    # inputdata = Request.GET.get('inputdata')
    url = 'www.google.com'
    req = Request.GET
    print("hi",req)
    req_list = list(dict(req).values())
    print("list",req_list)
    params_count = len(req_list)
    print('params_count', params_count)
    if params_count > 0:
        for i in range(params_count):
            params = params + req_list[i+1][0] + '=' + req_list[i+1][1] + '&' 
        url = url + params

        print('paramfinal',params)
    return render(Request, 'hello/ATF_Dashboard.html')

В этом представлении я получаю ошибку локальная переменная 'params' ссылается до присвоения в строке params = params + req_list[i+1][0] + '=' + req_list[i+1][1] + '&'. Как решить эту проблему? Также я не могу понять, в чем здесь проблема

Когда вы попытались использовать params здесь конкретно выражение params + req_list..., переменная params еще не определена.

for i in range(params_count):
    params = params + req_list[i+1][0] + '=' + req_list[i+1][1] + '&' 

Сначала вы должны определить его:

params = ""
for i in range(params_count):
    params = params + req_list[i+1][0] + '=' + req_list[i+1][1] + '&'

Вы также можете использовать оператор +=:

params += req_list[i+1][0] + '=' + req_list[i+1][1] + '&'

Также, основываясь на вставленном коде, обратите внимание на эту строку:

url = url + params

Ничего не добавляет в логику, так как url после этого не используется (если только вставленный код не является полной версией).

Вернуться на верх