1
0
mirror of https://github.com/django/django.git synced 2025-06-08 21:19:13 +00:00

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>
This commit is contained in:
Baptiste Mispelon 2025-04-28 09:48:12 +02:00 committed by nessita
parent 07100db6f4
commit 66f9eb0ff1
3 changed files with 10 additions and 1 deletions

View File

@ -391,7 +391,7 @@ class Command(BaseCommand):
columns = [
x for x in columns if x is not None and x in column_to_field_name
]
if len(columns) > 1:
if len(columns) > 1 and not params["primary_key"]:
unique_together.append(
str(tuple(column_to_field_name[c] for c in columns))
)

View File

@ -59,3 +59,7 @@ Bugfixes
* Fixed a bug in composite primary key introspection that caused
``IntegerField`` to be wrongly identified as ``AutoField`` on SQLite
(:ticket:`36358`).
* Fixed a bug in Django 5.2 that caused a redundant ``unique_together``
constraint to be generated for composite primary keys when using
:djadmin:`inspectdb` (:ticket:`36357`).

View File

@ -637,3 +637,8 @@ class InspectDBTransactionalTests(TransactionTestCase):
)
self.assertIn(f"column_1 = models.{field_type}()", output)
self.assertIn(f"column_2 = models.{field_type}()", output)
def test_composite_primary_key_not_unique_together(self):
out = StringIO()
call_command("inspectdb", "inspectdb_compositeprimarykeymodel", stdout=out)
self.assertNotIn("unique_together", out.getvalue())