Can anyone tell me why in the following code I get redirected to yahoo.com instead of google.com?
urls
urlpatterns = patterns('', (r'^$', initialRequest,))
view
def initialRequest(request):
if request.user.is_authenticated:
return HttpResponseRedirect('http://yahoo.com')
else:
return HttpResponseRedirect('http://google.com')
For Django 1.10 + As Richard mentioned is_authenticated is a function, so in your view it should be called like: request. user. is_authenticated() . Because of django templating language there can be confusion, because calling this in a template makes it appear as a property and not a method.
Check the Logged in User in Views in Django We can use request. user. is_authenticated to check if the user is logged in or not. If the user is logged in, it will return True .
To check if a user is logged in with Python Django, we can use the request. user. is_authenticated property in our view. to check if the current user is authenticated with request.
Shouldn't it be request.user.is_authenticated()
i.e. with brackets as it's a function?
is_authenticated
is now an attribute (although it is being kept backwards compatible for now).
As Richard mentioned is_authenticated is a function, so in your view it should be called like: request.user.is_authenticated()
.
Because of django templating language there can be confusion, because calling this in a template makes it appear as a property and not a method.
{{ user.is_authenticated}}
https://docs.djangoproject.com/en/dev/topics/auth/
its changed again from Pull request #216.
now your problem is fixed, if you are using Django 2.0+, look at this GitHub issue is the same issues you had. so in Django 2.0+
request.user.is_authenticated
is true!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With