Есть несколько способов сделать это. Вероятно, самым простым является создание пользовательского аутентификационного бэкенда, который подклассирует встроенный ModelBackend, но переопределяет user_can_authenticate
для проверки вашего пользовательского атрибута.
from django.contrib.auth.backends import ModelBackend
class MyCustomBackend(ModelBackend):
def user_can_authenticate(self, user):
return user.is_active and user.my_custom_attribute
Затем поместите это в верхнюю часть вашегоНастройка AUTHENTICATION_BACKENDS.