логин_опциональный декоратор для Django? - PullRequest
0 голосов
/ 22 июня 2010

Я разрабатываю сайт с полем для входа на странице шаблона base.html.Для всех страниц, требующих входа пользователя, я использую декоратор login_required.Тем не менее, я бы хотел, чтобы пользователь мог войти на другие страницы, если он этого захочет.

Среди вещей, которые делает декоратор login_required, это, кроме того, обрабатывать основные моменты входа в систему.чтобы убедиться, что вы вошли в систему, прежде чем показывать вам нужную страницу.

Мне нужен декоратор "login_optional" (или необязательный параметр в login_required) для этих необязательных страниц.Я не могу найти такую ​​вещь.Это существует, и я просто пропускаю это или мне нужно свернуть мою собственную процедуру обработки входа в систему для этих представлений?

Спасибо

Майк
РЕДАКТИРОВАТЬ (пример кода)
шаблон

<form action="" method="post">
    <label for="username">Username:</label>
    <input type="text" name="username" value="" id="username" size="10"/>
    <label for="password">Password:</label>
    <input type="password" name="password" value="" id="password" size="10"/>
    <input type="submit" value="Login"/>
    <input type="hidden" name="next" value="{{ next|escape }}"/>
</form

>

код входа в систему

@login_required
def chooseDistributor(request):
    user = request.user
    # blah stuff deleted
    # NOTHING TO HANDLE request.POST!
    return render_to_response('choose_distributor.html',locals())

код входа в систему

def showWelcome(request):
    user = request.user
    return render_to_response('welcome/home.html',locals())

1 Ответ

2 голосов
/ 22 июня 2010

Что ты имеешь в виду?login_optional - это просто представление без декоратора login_required ...: p.

Обратите внимание, что декоратор login_required не обрабатывает какие-либо функции входа в систему, он просто проверяет, вошел ли пользователь в систему, контролируя объект User запросаконтекст.Если он / она не вошли в систему, этот декоратор перенаправляет на страницу, которая содержит реальные функции входа в систему.

Таким образом, декоратор - это просто проверка + перенаправление, что делает регистрацию необязательной для страницы, следовательно, просто удаляетдекоратор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...