Как использовать переменную одной функции в другой? Django

Domohod45

Новичок
Пользователь
Дек 7, 2021
68
3
8
Мне нужно использовать переменную status, прописанную в функции event в другой функции.
Что мне для этого нужно сделать?

Python:
@csrf_exempt
def event(request):
    event_json = json.loads(request.body)
    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,
        }
        status = succeed # -----------
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
929
207
43
20
Москва
Можно создать глобальный словарь и сохранить значение там

Можно сделать атрибут у функции и менять его (event.status)
 
  • Мне нравится
Реакции: Domohod45

Domohod45

Новичок
Пользователь
Дек 7, 2021
68
3
8
Можно сделать атрибут у функции и менять его (event.status)
Да, это работает, но не так как мне нужно.
В этот случае все будет работать и я могу использовать var в другой функции.
Python:
@csrf_exempt  # event_json["object"]["status"]
def event(request):
    event.stat = 1
    return event.stat
    .   .   .

event(request)
var = event.stat

Но при настоящей event() будет происходить ошибка:
Код:
    event_json = json.loads(request.body)
AttributeError: module 'django.http.request' has no attribute 'body'

event():


Python:
@csrf_exempt  # event_json["object"]["status"]
def event(request):
    event.stat = 1
    event_json = json.loads(request.body) # ---
    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,
        }
        print(some_data)

    elif notification_object.event == WebhookNotificationEventType.PAYOUT_SUCCEEDED:
        some_data = {
            'payoutId': response_object.id,
            'payoutStatus': response_object.status,
            'dealId': response_object.deal.id,
        }
        print("Успешно, но это PAYOUT_SUCCEEDED")
    return HttpResponse(event.stat, status=200)

event(request)
var = event.stat
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
929
207
43
20
Москва
Ну так ошибка вроде не из-за этого, а из-за того, что у request нет атрибута body
 
  • Мне нравится
Реакции: Domohod45

Domohod45

Новичок
Пользователь
Дек 7, 2021
68
3
8
Ну так ошибка вроде не из-за этого, а из-за того, что у request нет атрибута body
как это можно исправить?
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
929
207
43
20
Москва
Не знаю, я с django не работал, возможно ты сделал import request, а потом пробуешь получить у него body, а его надо получать у объекта, а не у модуля
 
  • Мне нравится
Реакции: Domohod45

Форум IT Специалистов