Как остановить python-social-auth и отменить транзакцию на этапе конвейера?

У меня есть приложение Django, которое использует python-social-auth для аутентификации.

У меня есть это в моих настройках Django:

SOCIAL_AUTH_PIPELINE = (
    ...
    'my.app.my.custom.pipeline',
)

Как мне остановить весь процесс создания пользователя в моем пользовательском конвейере?

Я пытался бросать различные исключения, в том числе ValueError а также AuthException но созданные пользователи остаются в базе данных. Разве исключение не отменяет транзакцию базы данных?

0 ответов

Определите представление в одном из ваших приложений Django и не забудьте зарегистрировать для него путь:

def access_denied(request):
    return HttpResponse("<h1>Access denied</h1>")

И затем, функция, зарегистрированная в вашем пользовательском конвейере, просто должна вернуть представление:

if not allowed_email(fields["email"]):
    return redirect(access_denied)
Другие вопросы по тегам