При использовании декоратора @login_required, если юзер не залогинен, происходит редирект на settings.LOGIN_URL, по умолчанию "/accounts/login", например http://domen.ua:8000/accounts/login/?next=/search/
Вьюха login лежит в отдельном приложении - accounts:login
Вот мои urls.py:
Project:
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^', include('app.urls')),
url(r'^accounts/', include('accounts.urls', namespace='accounts')),
)
app:urls.py:
urlpatterns = patterns('',
# url(r'^$', grid),
url(r'^$', main),
url(r'^grid/$', grid, name='grid'),
url(r'^search/$', search, name='search'),
url(r'^about/$', about, name='about'),
url(r'^cabinet/(?P<whiteid>\d+)/$', cabinet, name='cabinet'),
)
accounts:urls.py
urlpatterns = patterns('',
url(r'^register$', 'accounts.views.register', name='register'),
url(r'^login$', 'accounts.views.login', name='login'),
url(r'^logout$', 'accounts.views.logout', name='logout'),
)
Exception:
Page not found (404)
Request Method: GET
Request URL: http://swasher.pp.ua:8000/accounts/login/?next=/search/
Using the URLconf defined in blacklist.urls, Django tried these URL patterns, in this order:
^admin/
^ ^$
^ ^grid/$ [name='grid']
^ ^search/$ [name='search']
^ ^about/$ [name='about']
^ ^cabinet/(?P<whiteid>\d+)/$ [name='cabinet']
^accounts/ ^register$ [name='register']
^accounts/ ^login$ [name='login']
^accounts/ ^logout$ [name='logout']
The current URL, accounts/login/, didn't match any of these.