Member 14088544 Ответов: 2

Локальная переменная 'username', на которую ссылаются перед назначением


Привет, Ребята. Я столкнулся с некоторой проблемой.

Столкнувшись с проблемой
Цитата:
локальная переменная 'username', на которую ссылаются перед назначением


Пожалуйста, помогите мне.

Что я уже пробовал:

Я уже пробовал этот код.

def dashboard(request):
    if request.method == 'POST':
        username = request.POST['username']
        password = request.POST['password']
        user = auth.authenticate(username=username, password=password)

    user_complaints = Complaint.objects.filter(username=username)
    user_applications = Application.objects.order_by('-date')
    context = {
        'complaints': user_complaints,
        'applications': user_applications
    }
    return render(request, 'accounts/dashboard.html', context)

2 Ответов

Рейтинг:
2

OriginalGriff

А что если request.method разве это не "почта"?
Какие ценности делают username, password, и user сдержать тогда?

Вот что означает сообщение об ошибке: вы пытаетесь использовать значение переменной, но никогда не присваивали ему значения.


Рейтинг:
0

berkninan

Unboundlocalerror: локальная переменная, на которую ссылаются перед назначением, возникает при попытке использовать переменную до того, как она была назначена в локальном контексте. Питон у него нет объявлений переменных , поэтому он должен сам определить область действия переменных. Это делается по простому правилу: если есть присвоение переменной внутри функции, то эта переменная считается локальной . Чтобы решить эту проблему, вы можете явно сказать, что она является глобальной, поместив глобальное объявление в свою функцию. Глобальный оператор не обязательно должен находиться в начале определения функции, но именно там он обычно размещается. Где бы он ни был помещен, глобальное объявление делает переменную глобальной переменной везде в функции.