Ticket #36880: checks.diff

File checks.diff, 1.0 KB (added by Tilman Koschnick, 3 hours ago)
  • django/contrib/auth/checks.py

    diff --git a/django/contrib/auth/checks.py b/django/contrib/auth/checks.py
    index 0de4cf49f1..ab63ea4bef 100644
    a b from itertools import chain  
    22
    33from django.apps import apps
    44from django.conf import settings
     5from django.contrib.postgres.constraints import ExclusionConstraint
    56from django.core import checks
    67from django.utils.module_loading import import_string
    78
    def check_user_model(app_configs, **kwargs):  
    7172    if not cls._meta.get_field(cls.USERNAME_FIELD).unique and not any(
    7273        constraint.fields == (cls.USERNAME_FIELD,)
    7374        for constraint in cls._meta.total_unique_constraints
     75    ) and not any(
     76        isinstance(constraint, ExclusionConstraint)
     77        and constraint.index_type.lower() == 'hash'
     78        and constraint.expressions[0][0] == cls.USERNAME_FIELD
     79        for constraint in cls._meta.constraints
    7480    ):
    7581        if settings.AUTHENTICATION_BACKENDS == [
    7682            "django.contrib.auth.backends.ModelBackend"
Back to Top