Бесконечная миграция для интактной модели

util

class UploadTo:    ​
    def __init__(self, folder, filename_suffix=""):
        self.folder = folder
        self.filename_suffix = filename_suffix
​
    def _get_filename(self, instance, filename):
        _, file_extension = os.path.splitext(filename)
        result = str(instance.a_uuid)
​
        if self.filename_suffix:
            result += "-{}".format(self.filename_suffix)
​
        result += file_extension
​
        return result
​
    def save_path(self, instance, filename):
        tmp_filename = self._get_filename(instance, filename)
        result = "{}/{}".format(self.folder.value,
                                tmp_filename)
        return result

модель

class Sound(UuidMixin,
            PhraseMixin,
            CommentMixin):
    british_sound = models.FileField(blank=True,
                                     null=False,
                                     default="",
                                     upload_to=UploadTo(folder=UPLOAD_TO.VOCABULARY_SOUND_FOLDER,
                                                        filename_suffix="british").save_path)

    american_sound = models.FileField(blank=True,
                                      null=False,
                                      default="",
                                      upload_to=UploadTo(folder=UPLOAD_TO.VOCABULARY_SOUND_FOLDER,
                                                         filename_suffix="american").save_path)

Сообщение

Migrations for 'vocabulary_sounds':
  vocabulary_sounds/migrations/0009_alter_sound_american_sound_alter_sound_british_sound.py
    - Alter field american_sound on sound
    - Alter field british_sound on sound

Миграция

class Migration(migrations.Migration):

    dependencies = [
        ('vocabulary_sounds', '0008_alter_sound_american_sound_alter_sound_british_sound'),
    ]

    operations = [
        migrations.AlterField(
            model_name='sound',
            name='american_sound',
            field=models.FileField(blank=True, default='', upload_to=general.model_aux.UploadTo.save_path),
        ),
        migrations.AlterField(
            model_name='sound',
            name='british_sound',
            field=models.FileField(blank=True, default='', upload_to=general.model_aux.UploadTo.save_path),
        ),
    ]

Copy Snippet
Edit Snippet
 Wordwrap
class Sound(UuidMixin,
            PhraseMixin,
            CommentMixin):
    british_sound = models.FileField(blank=True,
                                     null=False,
                                     default="",
                                     upload_to=UploadTo(folder=UPLOAD_TO.VOCABULARY_SOUND_FOLDER,
                                                        filename_suffix="british").save_path)
​
    american_sound = models.FileField(blank=True,
                                      null=False,
                                      default="",
                                      upload_to=UploadTo(folder=UPLOAD_TO.VOCABULARY_SOUND_FOLDER,
                                                         filename_suffix="american").save_path)
​
​
​
​
​
​
​
Migrations for 'vocabulary_sounds':
  vocabulary_sounds/migrations/0009_alter_sound_american_sound_alter_sound_british_sound.py
    - Alter field american_sound on sound
    - Alter field british_sound on sound
​
​
​
class Migration(migrations.Migration):
​
    dependencies = [
        ('vocabulary_sounds', '0008_alter_sound_american_sound_alter_sound_british_sound'),
    ]
​
    operations = [
        migrations.AlterField(
            model_name='sound',
            name='american_sound',
            field=models.FileField(blank=True, default='', upload_to=general.model_aux.UploadTo.save_path),
        ),
        migrations.AlterField(
            model_name='sound',
            name='british_sound',
            field=models.FileField(blank=True, default='', upload_to=general.model_aux.UploadTo.save_path),
        ),
    ]

Когда я выполняю makemigrations, этот код генерирует новую миграцию. Буквально:

python manage.py makemigrations

Появляется новая миграция.

Потом сразу:

python manage.py makemigrations

Появляется новая миграция.

Текст миграций всегда одинаков (насколько я могу судить).

Помогите, пожалуйста, понять, почему появляются новые миграции, хотя модель не повреждена? И как решить эту проблему?

Вернуться на верх