Я хотел бы, чтобы у дизайнера Django @login_required
было ли какое-либо поле на пользователе настроено на что-то другое, кроме None. (Добавленное поле имеет значение null = true и значение по умолчанию отсутствует.)Как я могу изменить конструктор Django login_required на пользовательской установке Pinax?
Недавно созданные объекты пользователя действительно имеют значение None для поля, но очевидное изменение на @login_required
не привело к заметной разнице в поведении (I перезапущен Gunicorn, чтобы обеспечить свежее чтение). @login_required
Представления отображаются, если пользователь аутентифицирован, даже если добавленное поле равно None.
Настоящее, немного изменен @login_required
является:
def login_required(function=None, redirect_field_name=REDIRECT_FIELD_NAME):
"""
Decorator for views that checks that the user is logged in, redirecting
to the log-in page if necessary.
"""
actual_decorator = user_passes_test(
lambda u: u.foo != None,
redirect_field_name=redirect_field_name
)
if function:
return actual_decorator(function)
return actual_decorator
оригинальный лямбда был на u.is_authenticated()
.