from .models import LoginRecord def _get_client_ip(request): x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR') if x_forwarded_for: return x_forwarded_for.split(',')[0].strip() return request.META.get('REMOTE_ADDR', '') def create_login_record(request, user, record_status='success'): try: ip_address = _get_client_ip(request) device = request.META.get('HTTP_USER_AGENT', '') or '' if len(device) > 200: device = device[:200] LoginRecord.objects.create( user=user, ip_address=ip_address or None, device=device, location='', status=record_status, ) except Exception: pass