Я создаю приложение django. Пользователи регистрируются и отображаются статическая веб-страница, управляемая приложением flatpages.Почему django возвращает 301 и 302 в качестве кодов ответа сервера после входа пользователя в систему и отображается плоская страница?
Вот типичные сообщения о состоянии сервера Dev:
[15/Aug/2013 18:43:16] "GET/HTTP/1.1" 200 1263
[15/Aug/2013 18:43:23] "POST/HTTP/1.1" 302 0
[15/Aug/2013 18:43:23] "GET /home HTTP/1.1" 301 0
[15/Aug/2013 18:43:23] "GET /home/ HTTP/1.1" 200 4529
- Первая строка для страницы входа в /. Это успешно подано, код 200.
- Вторая строка - вход формы. Код ответа сервера равен 302, что означает, что страница временно перемещается.
- Третья строка - это попытка получить страницу ('/ home'), которой не существует, потому что основная страница обслуживается flatpages. Код ответа сервера 301 указывает, что страница была перемещена навсегда.
- Четвертая строка - успешная доставка контента ('/ home') из flatpages.
Почему сервер отвечает 302 на запрос запроса?
Что вызывает третью строку? Почему это сообщение отправлено вообще? Разве это не должно быть чем-то, что улавливается промежуточным программным обеспечением flatpages? Мой веб-клиент отправляет запрос под четвертую строчку? Как он это знает?
Я думаю, самый важный вопрос: я что-то делаю неправильно?
Спасибо за помощь!
urls.py
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^$', 'django.contrib.auth.views.login'),
url(r'^logout$', 'guide.views.logout_view'),
# other patterns
(r'', include('django.contrib.flatpages.urls')),
)
views.py
def home(request):
if request.user.is_authenticated() == False:
return HttpResponseRedirect('/')
return HttpResponseRedirect('/home/')
Отрывок из settings.py
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
'guide.middleware.LogActivity'
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.flatpages',
'django.contrib.admin',
'guide',
)
У меня нет шаблона для домашнего вида в urls.py, потому что он находится в flatpages db. Приложение flatpages ожидает «/ home /», но что-то еще просит «/ home». Но ваш ответ дает мне идею для чего-то попробовать. – benevolentprof