10000 Fixed #36357 -- Skipped unique_together in inspectdb output for compo… · feanil/django@66f9eb0 · GitHub
[go: up one dir, main page]

Skip to content

Commit 66f9eb0

Browse files
bmispelonnessita
andcommitted
Fixed #36357 -- Skipped unique_together in inspectdb output for composite primary keys.
Thanks to Baptiste Mispelon for the report and quick fix, and to Simon Charette and Jacob Walls for the reviews. Co-authored-by: Natalia <124304+nessita@users.noreply.github.com>
1 parent 07100db commit 66f9eb0

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

django/core/management/commands/inspectdb.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,7 @@ def get_meta(
391391
columns = [
392392
x for x in columns if x is not None and x in column_to_field_name
393393
]
394-
if len(columns) > 1:
394+
if len(columns) > 1 and not params["primary_key"]:
395395
unique_together.append(
396396
str(tuple(column_to_field_name[c] for c in columns))
397397
)

docs/releases/5.2.1.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,7 @@ Bugfixes
5959
* Fixed a bug in composite primary key introspection that caused
6060
``IntegerField`` to be wrongly identified as ``AutoField`` on SQLite
6161
(:ticket:`36358`).
62+
63+
* Fixed a bug in Django 5.2 that caused a redundant ``unique_together``
64+
constraint to be generated for composite primary keys when using
65+
:djadmin:`inspectdb` (:ticket:`36357`).

tests/inspectdb/tests.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -637,3 +637,8 @@ def test_composite_primary_key(self):
637637
)
638638
self.assertIn(f"column_1 = models.{field_type}()", output)
639639
self.assertIn(f"column_2 = models.{field_type}()", output)
640+
641+
def test_composite_primary_key_not_unique_together(self):
642+
out = StringIO()
643+
call_command("inspectdb", "inspectdb_compositeprimarykeymodel", stdout=out)
644+
self.assertNotIn("unique_together", out.getvalue())

0 commit comments

Comments
 (0)
0