35 lines
936 B
Python
35 lines
936 B
Python
# Generated by Django 4.1.5 on 2023-11-06 17:25
|
|
|
|
from django.db import migrations, models
|
|
|
|
|
|
def rename_duplicates(apps, schema_editor):
|
|
Edition = apps.get_model("games", "Edition")
|
|
|
|
duplicates = (
|
|
Edition.objects.values("name", "platform")
|
|
.annotate(name_count=models.Count("id"))
|
|
.filter(name_count__gt=1)
|
|
)
|
|
|
|
for duplicate in duplicates:
|
|
counter = 1
|
|
duplicate_editions = Edition.objects.filter(
|
|
name=duplicate["name"], platform_id=duplicate["platform"]
|
|
).order_by("id")
|
|
|
|
for edition in duplicate_editions[1:]: # Skip the first one
|
|
edition.name = f"{edition.name} {counter}"
|
|
edition.save()
|
|
counter += 1
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
dependencies = [
|
|
("games", "0017_alter_device_type_alter_purchase_platform"),
|
|
]
|
|
|
|
operations = [
|
|
migrations.RunPython(rename_duplicates),
|
|
]
|