Как я могу использовать функцию с запросом в качестве аргумента при использовании django.db.models.signals.post_save - PullRequest
0 голосов
/ 25 августа 2018

Я пытаюсь отслеживать изменения в моей базе данных и связать их с IP-адресом.Я передаю request в моей get_ip функции и вызываю эту функцию в alert_change с помощью post_save.connect().Я получаю сообщение об ошибке «alert_request отсутствует один обязательный аргумент:« запрос »».Кажется, я не могу передать дополнительные аргументы при использовании сигнала post_save.Каков наилучший способ достижения моей цели использования сигналов и запросов в одной и той же функции?Спасибо.

def get_ip(request):
ip, is_routable = get_client_ip(request)
if ip is None:
    return "unable to get IP address"
else:
    print(ip)
    if is_routable:
        return "public IP"
    else:
        return "Private IP Address"


def alert_change(sender, instance, created, request, **kwarg):
    if created:
        print("Account created for {}.".format(instance.first_name))
        print(get_ip(request))
    else:
        print("change for {}{}. Credit: {}".format(instance.first_name, instance.last_name, instance.credit))


post_save.connect(alert_change, sender=Customer)
...