Еще один вариант «проверить состояние ... и вызвать различные точки зрения» заключается в использовании пользовательский вид предикаты
От Cris McDonough's blog post:
def example_dot_com_host(info, request):
if request.host == 'www.example.com:
return True
Это пользовательский предикат есть. Он возвращает True, если имя хоста - www.example.com. Вот как мы используем его:
@view_config(route_name='blogentry', request_method='GET')
def get_blogentry(request):
...
@view_config(route_name='blogentry', request_method='POST')
def post_blogentry(request):
...
@view_config(route_name='blogentry', request_method='GET',
custom_predicates=(example_dot_com_host,))
def get_blogentry_example_com(request):
...
@view_config(route_name='blogentry', request_method='POST',
custom_predicates=(example_dot_com_host,))
def post_blogentry_example_com(request):
...
Однако для конкретной задачи (отображается страница входа, если пользователь не имеет прав для просмотра страницы) лучший способ для достижения этой цели было бы set up permissions для представления, так в рамках вызывает исключение, когда пользователь не имеет разрешения, а затем регистрирует custom view for that exception, который будет показывать форму знака.
Это должно быть 'рейз', вы ничего не можете вернуть от подписчиков. –