From b172cbdf33c3eaea6a5c4a53da2ed0e46306a625 Mon Sep 17 00:00:00 2001 From: Jonathan Biemond Date: Thu, 18 Dec 2025 14:43:59 +0100 Subject: [PATCH] Fixed #36808 -- Required name argument in UniqueConstraint signature. By trading ValueError for TypeError for omitted name arguments, we gain a little clarity. --- AUTHORS | 1 + django/db/models/constraints.py | 2 +- docs/ref/models/constraints.txt | 2 +- tests/constraints/tests.py | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/AUTHORS b/AUTHORS index 5e7bca67f5..f6d4c5fe26 100644 --- a/AUTHORS +++ b/AUTHORS @@ -551,6 +551,7 @@ answer newbie questions, and generally made Django that much better: Jonas Lundberg Jonathan Davis Jonatas C. D. + Jonathan Biemond Jonathan Buchanan Jonathan Daugherty (cygnus) Jonathan Feignberg diff --git a/django/db/models/constraints.py b/django/db/models/constraints.py index 4286319978..7dfeb3b649 100644 --- a/django/db/models/constraints.py +++ b/django/db/models/constraints.py @@ -265,7 +265,7 @@ class UniqueConstraint(BaseConstraint): self, *expressions, fields=(), - name=None, + name, condition=None, deferrable=None, include=None, diff --git a/docs/ref/models/constraints.txt b/docs/ref/models/constraints.txt index 9a51c5c7a2..36a79e1c0b 100644 --- a/docs/ref/models/constraints.txt +++ b/docs/ref/models/constraints.txt @@ -130,7 +130,7 @@ ensures the age field is never less than 18. ``UniqueConstraint`` ==================== -.. class:: UniqueConstraint(*expressions, fields=(), name=None, condition=None, deferrable=None, include=None, opclasses=(), nulls_distinct=None, violation_error_code=None, violation_error_message=None) +.. class:: UniqueConstraint(*expressions, fields=(), name, condition=None, deferrable=None, include=None, opclasses=(), nulls_distinct=None, violation_error_code=None, violation_error_message=None) Creates a unique constraint in the database. diff --git a/tests/constraints/tests.py b/tests/constraints/tests.py index f988121528..39b170125f 100644 --- a/tests/constraints/tests.py +++ b/tests/constraints/tests.py @@ -1462,7 +1462,7 @@ class UniqueConstraintTests(TestCase): def test_requires_name(self): msg = "A unique constraint must be named." with self.assertRaisesMessage(ValueError, msg): - models.UniqueConstraint(fields=["field"]) + models.UniqueConstraint(fields=["field"], name="") def test_database_default(self): models.UniqueConstraint(