Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 12, 2014 07:40:59

andreiru
От:
Зарегистрирован: 2010-11-06
Сообщения: 154
Репутация: +  0  -
Профиль   Отправить e-mail  

Две разные вьюхи на один URL

Здравствуйте!

Нужно что-бы при заходе на главную страницу, если пользователь авторизирован, то отрабатывает одна вьюха, если анонимус, то другая, подскажите такое возможно ?



Офлайн

#2 Ноя. 12, 2014 08:12:25

botinag
Зарегистрирован: 2014-02-20
Сообщения: 179
Репутация: +  35  -
Профиль   Отправить e-mail  

Две разные вьюхи на один URL

if request.user.is_authenticated():
    <blah blah>
else:
    <another blah blah>
Документация

Отредактировано botinag (Ноя. 12, 2014 08:15:00)

Офлайн

#3 Ноя. 14, 2014 09:30:04

andreiru
От:
Зарегистрирован: 2010-11-06
Сообщения: 154
Репутация: +  0  -
Профиль   Отправить e-mail  

Две разные вьюхи на один URL

botinag

Я имею в виду что-то вроде:

if request.user.is_authenticated():
    urlpatterns += patterns(url(r'^$', Home.as_view(), name='home'))
else:
    urlpatterns += patterns(url(r'^$', SignupDriver.as_view(), name='home'))

в urls.py

request же можно как-то подтянуть в urls.py ?



Отредактировано andreiru (Ноя. 14, 2014 09:47:15)

Офлайн

#4 Ноя. 14, 2014 10:21:51

GreyZmeem
От: Киев
Зарегистрирован: 2013-12-03
Сообщения: 147
Репутация: +  34  -
Профиль   Отправить e-mail  

Две разные вьюхи на один URL

def home_view(request):
    if request.user.is_authenticated():
        return Home.as_view()(request)
    return SignupDriver.as_view()(request)
 
urlpatterns = patterns(
    '',
    url(r'^$', lambda request: home_view(request)),
)

Но лучше так не делать. А сделать в самой вьюхе или через @login_required

Отредактировано GreyZmeem (Ноя. 14, 2014 10:23:43)

Офлайн

#5 Ноя. 14, 2014 10:22:24

infoing
От:
Зарегистрирован: 2010-09-06
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version