From 6bb343f4cae73bcd1830df2e70d95612e96753ad Mon Sep 17 00:00:00 2001 From: Anastasia Yasakova Date: Fri, 9 Sep 2022 16:06:22 +0300 Subject: [PATCH] Fix bug with removing attributes (#4927) --- CHANGELOG.md | 1 + .../migrations/0060_alter_label_parent.py | 19 +++++++++++++++++++ cvat/apps/engine/models.py | 2 +- 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 cvat/apps/engine/migrations/0060_alter_label_parent.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c400474..c318c253 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -60,6 +60,7 @@ Skeleton (), () - Maximum callstack exceed when create task with 100000+ files from cloud storage () - Fixed invocation of serverless functions () +- Removing label attributes () ### Security - TDB diff --git a/cvat/apps/engine/migrations/0060_alter_label_parent.py b/cvat/apps/engine/migrations/0060_alter_label_parent.py new file mode 100644 index 00000000..5eb69834 --- /dev/null +++ b/cvat/apps/engine/migrations/0060_alter_label_parent.py @@ -0,0 +1,19 @@ +# Generated by Django 3.2.15 on 2022-09-09 09:00 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('engine', '0059_labeledshape_outside'), + ] + + operations = [ + migrations.AlterField( + model_name='label', + name='parent', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='sublabels', to='engine.label'), + ), + ] diff --git a/cvat/apps/engine/models.py b/cvat/apps/engine/models.py index bdcde0e5..43f14dc4 100644 --- a/cvat/apps/engine/models.py +++ b/cvat/apps/engine/models.py @@ -498,7 +498,7 @@ class Label(models.Model): name = SafeCharField(max_length=64) color = models.CharField(default='', max_length=8) type = models.CharField(max_length=32, null=True, choices=LabelType.choices(), default=LabelType.ANY) - parent = models.ForeignKey('self', on_delete=models.CASCADE, null=True, related_name='sublabels') + parent = models.ForeignKey('self', on_delete=models.CASCADE, null=True, blank=True, related_name='sublabels') def __str__(self): return self.name