Sorry for late response, I meant that you might using that decorator in 2 places. And asked about that.
It seems like you specified `@owner_required` to decorate your view function. But that decorator behave like `@owner_required()`. With your last response I see that decorated function instead of `request` receives `function all`. It looks like improperly used decorator. More than that I do not have more ideas from what you provided. On Sat, Sep 30, 2017 at 4:02 PM, Mannu Gupta <[email protected]> wrote: > Hello Constantine C, > > Thanks for your reply! > > What do you mean to say just one place ? > I just printed the request using `print(request)` and getting this > `<function all at 0x7f6ffc65a050>` ( don't know what this actually is ) > > Am i using the following approach. > On Saturday, September 30, 2017 at 8:08:22 AM UTC+5:30, Constantine > Covtushenko wrote: >> >> Hi Mannu, >> >> It seems like all are ok. >> Sorry, but do you use it in just one place? >> And do you see response in console from your print? >> >> Regards, >> Constantine C. >> >> On Thu, Sep 28, 2017 at 4:36 PM, Mannu Gupta <[email protected]> >> wrote: >> >>> I am just using it in a view function. For example:- >>> >>> @owner_required >>> def all(request, **kwargs): >>> pass >>> >>> >>> On Friday, September 29, 2017 at 12:33:09 AM UTC+5:30, Mannu Gupta wrote: >>>> >>>> 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/ms >>> gid/django-users/0e34ae73-5697-4a93-9402-c0ca1f4abd70%40googlegroups.com >>> <https://groups.google.com/d/msgid/django-users/0e34ae73-5697-4a93-9402-c0ca1f4abd70%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> >> >> -- >> Sincerely yours, >> Constantine C >> > -- > 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/69879830-d7ad-4914-a8d4-7ac1ba1d8241%40googlegroups.com > <https://groups.google.com/d/msgid/django-users/69879830-d7ad-4914-a8d4-7ac1ba1d8241%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- Sincerely yours, Constantine C -- 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/CAK52boXfYjnNZXBa-9Qo3jCtMuEzgBu76Q%3D36zgn_9242Y4Q4Q%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.

