Ответ 1
Разве это не должно быть request.user.is_authenticated()
, т.е. с помощью скобок, поскольку это функция?
Для Django 1.10 +
is_authenticated
теперь является атрибутом (хотя на данный момент он поддерживается обратно совместимым).
Может ли кто-нибудь сказать мне, почему в следующем коде я перенаправляюсь на yahoo.com вместо google.com?
URLs
urlpatterns = patterns('', (r'^$', initialRequest,))
Вид
def initialRequest(request):
if request.user.is_authenticated:
return HttpResponseRedirect('http://yahoo.com')
else:
return HttpResponseRedirect('http://google.com')
Разве это не должно быть request.user.is_authenticated()
, т.е. с помощью скобок, поскольку это функция?
is_authenticated
теперь является атрибутом (хотя на данный момент он поддерживается обратно совместимым).
Как упоминал Ричард, is_authenticated - это функция, поэтому, на ваш взгляд, ее следует называть как: request.user.is_authenticated()
.
Из-за языка шаблонов django может возникнуть путаница, потому что вызов этого в шаблоне делает его отображаемым как свойство, а не метод.
{{ user.is_authenticated}}
https://docs.djangoproject.com/en/dev/topics/auth/
его снова изменили с запроса Pull # 216.
теперь ваша проблема исправлена, если вы используете Django 2.0+, посмотрите на это проблема GitHub - те же проблемы, которые у вас были. поэтому в Django 2.0 +
request.user.is_authenticated
истинно!