diff options
Diffstat (limited to 'django/db/models/base.py')
| -rw-r--r-- | django/db/models/base.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/django/db/models/base.py b/django/db/models/base.py index 0711ec0d61..3e9b847b37 100644 --- a/django/db/models/base.py +++ b/django/db/models/base.py @@ -2442,6 +2442,29 @@ class Model(AltersData, metaclass=ModelBase): id="models.W044", ) ) + if not ( + connection.features.supports_nulls_distinct_unique_constraints + or ( + "supports_nulls_distinct_unique_constraints" + in cls._meta.required_db_features + ) + ) and any( + isinstance(constraint, UniqueConstraint) + and constraint.nulls_distinct is not None + for constraint in cls._meta.constraints + ): + errors.append( + checks.Warning( + "%s does not support unique constraints with " + "nulls distinct." % connection.display_name, + hint=( + "A constraint won't be created. Silence this " + "warning if you don't care about it." + ), + obj=cls, + id="models.W047", + ) + ) fields = set( chain.from_iterable( (*constraint.fields, *constraint.include) |
