Ситуация
У меня есть пользовательское изображение и модель воспроизведения, и я следую руководству по трясогузке v2.4 , чтобы реализовать их:
class AccreditedImage(AbstractImage):
"""
AccreditedImage - Customised image model with optional caption and accreditation
"""
caption = models.CharField(max_length=255, blank=True)
accreditation = models.CharField(max_length=255, blank=True, null=True)
admin_form_fields = Image.admin_form_fields + (
'caption',
'accreditation',
)
class Meta:
verbose_name = 'Accredited image'
verbose_name_plural = 'Accredited images'
def __str__(self):
credit = ' ({})'.format(self.accreditation) if (self.accreditation is not None) and (len(self.accreditation) > 0) else ''
return '{}{}'.format(self.title, credit)
class AccreditedRendition(AbstractRendition):
"""
AccreditedRendition - stores renditions for the AccreditedImage model
"""
image = models.ForeignKey(AccreditedImage, on_delete=models.CASCADE, related_name='renditions')
class Meta:
unique_together = (('image', 'filter_spec', 'focal_point_key'),)
verbose_name = 'Accredited Image Rendition'
verbose_name_plural = 'Accredited Image Renditions'
В settings
У меня есть:
WAGTAILIMAGES_IMAGE_MODEL = 'cms.AccreditedImage'
Но у меня установлены два плагина сторонних производителей: puput и wagtail_events , каждый из которых использует внешний ключ для изображений трясогузки.
Когда я запускаю makemigrations `manage.py, в папках puput и wagtail_events site_packages создаются дополнительные миграции для обработки изменений в FK.Миграции выглядят так:
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('puput', '0005_blogpage_main_color'),
]
operations = [
migrations.AlterField(
model_name='blogpage',
name='header_image',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='cms.AccreditedImage', verbose_name='Header image'),
),
migrations.AlterField(
model_name='entrypage',
name='header_image',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='cms.AccreditedImage', verbose_name='Header image'),
),
]
Проблема
Если я на самом деле применяю эти миграции, то puput или wagtail_events выпускает новую версию, тогда история миграции становится поврежденной - например, мой автоматически сгенерированный 0006* Миграция на куколку и их новый 0006 * Миграция форка истории
Вопрос
Есть ли способ преодолеть это?Или рекомендуемая практика для того, что делать?
На данный момент я нахожусь в очень ранней бета-версии, поэтому я мог бы сбросить всю БД и начать заново, если рекомендуемая стратегия состоит в том, чтобы установить это с самого начала, чтобы избежатьвопрос.
Спасибо за любую помощь, ребята!