bijoe/bijoe/visualization/migrations/0003_visualization_slug.py

41 lines
1.3 KiB
Python

# Generated by Django 1.11.12 on 2019-03-28 07:17
from django.db import migrations, models
from django.utils.text import slugify
class Migration(migrations.Migration):
dependencies = [
('visualization', '0002_rename_parameters'),
]
def forward_func(apps, schema_editor):
Visualization = apps.get_model('visualization', 'Visualization')
new_slugs = {}
for instance in Visualization.objects.all():
if not instance.slug:
new_slug = slugify(instance.name[:40]).strip('-')
if new_slug in new_slugs:
i = 2
while True:
suffixed_slug = new_slug + '-%s' % i
if not suffixed_slug in new_slugs:
new_slug = suffixed_slug
break
i += 1
new_slugs[new_slug] = True
instance.slug = new_slug
instance.save()
def reverse_func(apps, schema_editor):
pass
operations = [
migrations.AddField(
model_name='visualization',
name='slug',
field=models.SlugField(null=True, unique=True, verbose_name='Identifier'),
),
migrations.RunPython(forward_func, reverse_func),
]