As a business requirement we have to show login form in an ajax
response for some login_required actions. I want to change the
login_required decorator to behaive differently in case the request is
an ajax request and not a normal GET / POST request.
What do you think is the best way to override the login_required
decorator without changing django code ?
For now just changed the django/contrib/auth/decorators.py to add at
the bottom this code:
def __call__(self, request, *args, **kwargs):
if self.test_func(request.user):
return self.view_func(request, *args, **kwargs)
path = urlquote(request.get_full_path())
if request.is_ajax():
return HttpResponse(render_to_string(
settings.LOGIN_TEMPLATE_AJAX,
{self.redirect_field_name: path,},
),mimetype='text/plain')
tup = self.login_url, self.redirect_field_name, path
return HttpResponseRedirect('%s?%s=%s' % tup)
Any suggestion will be welcomed !
thanks in advance, robert
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---