Найти - Пользователи
Полная версия: Как мне исправить ошибку AttributeError: module 'django.http.request' has no attribute?
Начало » Python для новичков » Как мне исправить ошибку AttributeError: module 'django.http.request' has no attribute?
1 2
SwanAvs
Мне нужно вызвать функцию(view) в Django, однако это вызывает ошибку.

 def fanc(request):
    non, created = Order.objects.get_or_create(user=request.user) # no attribute user
    data = json.loads(request.body) # no attribute body
     . . .
    return HttpResponse(status=200)
fanc(request)

В результате чего выводятся следующие ошибки:
AttributeError: module ‘django.http.request’ has no attribute ‘user’
AttributeError: module ‘django.http.request’ has no attribute ‘body’

Если не передавать при вызове request, то будет TypeError: fanc() missing 1 required positional argument: ‘request’

Как мне исправить AttributeError?
py.user.next
Попробуй имя request заменить на имя req в этом фрагменте кода.
SwanAvs
py.user.next
Попробуй имя request заменить на имя req в этом фрагменте кода.
Все тоже самое:

 def fanc(req):
    data = json.loads(req.body)
    return HttpResponse(status=200)
fanc(req)

NameError: name ‘req’ is not defined

AttributeError: module ‘pip._internal.req’ has no attribute ‘body’
py.user.next
Скинь полный код. Оставь в нём req.
SwanAvs
py.user.next
Скинь полный код. Оставь в нём req.
 def fanc(req): # функция, которая принимает данные платежа от платежной системы
    data = json.loads(req.body)
    print(data)
    notification_object = WebhookNotificationFactory().create(event_json)
    response_object = notification_object.object
    # request.session['status'] = "succeed"
    if notification_object.event == WebhookNotificationEventType.PAYMENT_SUCCEEDED:
        some_data = {
            'paymentId': response_object.id,
            'paymentStatus': response_object.status,
        }
    return HttpResponse(status=200)
fanc(req) # строка, вызывающая ошибки
py.user.next
SwanAvs
  
fanc(req) # строка, вызывающая ошибки
Интерпретатор не видит req нигде, кроме внутренней части функции fanc(). Вот то, что ты этого не понимаешь, и вызывает вопросы. А ты знаешь, что такое область видимости имени?
Так что, скорее всего, там 100500 ошибок в той части кода, которую ты не выложил здесь, так как ты даже не знаешь основ каких-то, не говоря уже о глубоких знаниях или знании какой-то специфики работы с Django.
SwanAvs
py.user.next
Я знаю, что такое область видимости, а функцию пытаюсь вызвать для использования ее переменных, так как сохранить их в бд или получить через сессии не получится.
SwanAvs
Так могу ли я как-то вызвать функцию?
py.user.next
SwanAvs
Я знаю, что такое область видимости
Не знаешь. Если бы ты знал, ты бы не обращался к req вне его области видимости. А ты это делаешь.
xam1816
SwanAvs
fanc(req) # строка, вызывающая ошибки
в каком месте кода ты получаешь данные платежа от платежной системы?
может что-то типа
req = request.get('url')

и потом этот req передаешь в функцию для обработки
fanc(req)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB