Как я могу использовать функцию с запросом в качестве аргумента при использовании django.db.models.signals.post_save
Я пытаюсь отслеживать изменения в моей базе данных и связать их с 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)