2013-12-09 4 views
1
if not request.user.is_authenticated(): 
    return HttpResponseRedirect(reverse('login_user')) 

С тех пор как я делал выше, в большинстве своих взглядов я подумал, что должно быть что-то лучше, чем положить этот кусок во все мои взгляды.django decorator проверить, если пользователь зарегистрировался в противном случае, переадресовать

теперь я нашел кое-что о decoraters, что, кажется, сделать немного, что я хочу:

from django.views.decorators.http import require_http_methods 

@require_http_methods(["GET", "POST"]) 
def my_view(request): 

Теперь я задавался это действительно сделано с декораторами, и если да, то как я могу перевести это, чтобы проверить, является ли пользователь входить в систему и перенаправлять в противном случае?

+0

Пожалуйста, прочтите [документацию] (https://docs.djangoproject.com/en/dev/topics/auth/default/ # the-login-required-decorator) – mariodev

ответ

1

Вы можете использовать встроенный декоратор:

from django.contrib.auth.decorators import login_required 

@login_required 
def edit_user_profile(request): 
    //some code 

django login_required decorator

+0

Есть ли обзор обо всех встроенных декораторах? я только нашел эту страницу https://docs.djangoproject.com/en/1.5/topics/http/decorators/#module-django.views.decorators.http –

+0

Когда я установил свой URL-адрес для входа на свою «домашнюю страницу» LOGIN_URL = ' «Я получаю сообщение об ошибке, когда я действительно пытаюсь получить страницу, использующую ошибку @login_required:« Обратное для «^ $» с аргументами «()» и аргументами ключевого слова «{}« не найден ». Как это исправить? –

+0

В LOGIN_URL вы должны передать url (или имя функции или шаблон url url), которые указывают на вашу страницу входа. –

Смежные вопросы