Запрос устаревшего типа контента с удалением всех экземпляров модели после переименования модели django с разрешениями

У меня было две модели под названием CombinedProduct и CombinedProductPrice, которые я переименовал в Set и SetPrice соответственно. Я сделал это, изменив название модели в файле models.py и заменив все его вхождения. Это также включало переименование поля внешнего ключа в другой модели с Commander_product на set (указывающее на CombinedProduct).

При запуске makemigrations django правильно обнаружил переименование и спросил, переименовал ли я все три из этих вещей, и я нажал «да» для всех. Однако при запуске "migrate" после применения некоторых вещей меня спрашивают:

The following content types are stale and need to be deleted:

    product | combinedproduct
    product | combinedproductprice

Any objects related to these content types by a foreign key will also
be deleted. Are you sure you want to delete these content types?
If you're unsure, answer 'no'.

Я сделал резервную копию своих данных и ввел «да», в результате чего были удалены все экземпляры Set (ранее CombinedProduct) и SetPrice (ранее CombinedProductPrice). Если я откатываюсь и ставлю галочку «Нет», то этот вопрос возникает каждый раз при миграции.

Это странно, поскольку я нигде не использую фреймворк django ContentType. Однако при проверке того, какие поля указывают на ContentType, я вижу, что auth.permission указывает на него, и я использую разрешения для этих моделей. Так, может быть, каскады удаления из старых разрешений указывают на старые имена моделей, которые, в свою очередь, удалят мои экземпляры? Если это так, как я могу предотвратить эту ситуацию?

Это сгенерированная миграция:

 operations = [ 
    migrations.RenameModel(
        old_name='CombinedProduct',
        new_name='Set',
    ),  
    migrations.RenameModel(
        old_name='CombinedProductPrice',
        new_name='SetPrice',
    ),  
    migrations.AlterModelOptions(
        name='setprice',
        options={'ordering': ('set', 'vendor', 'price'), 'verbose_name': 'Set price', 'verbose_name_plural': 'Set prices'},
    ),  
    migrations.RenameField(
        model_name='setprice',
        old_name='combined_product',
        new_name='set',
    ),  
] 

person Tobias    schedule 09.06.2015    source источник


Ответы (1)