Может кто-нибудь сказать мне, почему в следующем коде я перенаправлен на 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(), т. Е. В скобках как функция?
request.user.is_authenticated()
is_authenticated теперь является атрибутом (хотя и поддерживается обратной совместимостью)на данный момент).
is_authenticated
Как упоминал Ричард, is_authenticated - это функция, поэтому, на ваш взгляд, она должна называться следующим образом: request.user.is_authenticated().
Из-за языка шаблонов django может возникнуть путаница, поскольку при вызове этого в шаблоне он отображается как свойство, а не метод.
{{ user.is_authenticated}} https://docs.djangoproject.com/en/dev/topics/auth/
{{ user.is_authenticated}}
изменилось снова из запроса Pull # 216 .
теперь ваша проблема исправлена, если вы используете Django 2.0+, посмотрите на эту проблему GitHub - это те же проблемы, что и у вас. так в Django 2.0 +
request.user.is_authenticated
верно!
У меня есть django 2.0, я пробовал это и работает
if request.user.is_authenticated: