While making a customer decorator in django, the code is here :-

def owner_required(function):
    def wrap(request, *args, **kwargs):
        print(request)
        ip_address = get_client_ip(request)
        ip_exist = Node.objects.get(ip_address=ip_address)
        if ip_exist:
            return function(request, *args, **kwargs)
        else:
            raise PermissionDenied
    return wrap

my code for get_ip_address() is :-

def get_client_ip(request):
    """ Extract ip address from a Django request object
    """
    x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
    if x_forwarded_for:
        ip = x_forwarded_for.split(',')[0]
    else:
        ip = request.META.get('REMOTE_ADDR')
    return ip

The error i am getting is :-

x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
AttributeError: 'function' object has no attribute 'META'


That get_client_ip() is working fine when used in normal function, but 
don't know why it is not working when i am using it a decorator.

What might be the problem ?

Thanks in advance for replies.

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/5b9673a1-9cbd-478e-bb03-1a7be8f4167a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to