Django-parler IntegrityError при добавлении нового объекта в админ
У меня эта ошибка при попытке сохранить новый объект. Пытаюсь спросить гугл, ничего полезного. Я думаю, что моя проблема - другой идентификатор для Product и таблицы перевода, но я не знаю, как это исправить. Извините за мой английский.
django == 1.10.7 django-parler == 1.8
Тип исключения: IntegrityError
Значение исключения:
вставка или обновление таблицы "pcart_catalog_product_translation" нарушает ограничение внешнего ключа "pcart_catalog_pr_master_id_571a2ec0_fk_pcart_catalog_product_id" DETAIL: ключ (master_id)=(a74f5571-512d-4bd5-9164-0d8_catt)
Это часть моего объекта:
class Product(TranslatableModel):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
slug = models.SlugField(_('Slug'), max_length=255, unique=True)
external_id = models.CharField(
_('External ID'), default='', blank=True, max_length=255, db_index=True)
translations = TranslatedFields(
title=models.CharField(_('Title'), max_length=255),
description=HTMLField(_('Description'), blank=True),
page_title=models.CharField(_('Page title'), max_length=255, blank=True),
meta_description=models.TextField(_('Meta description'), blank=True),
meta_keywords=models.TextField(_('Meta keywords'), blank=True),
meta_text=models.TextField(_('Meta text'), blank=True),
)
Это настройки языка и парлера:
LANGUAGE_CODE = os.environ.get('LANGUAGE_CODE', 'uk')
LANGUAGES = [
('uk', 'Українська'),
]
USE_I18N = True
USE_L10N = True
USE_TZ = True
PARLER_LANGUAGES = {
SITE_ID: (
{'code': 'uk',},
),
'default': {
'fallbacks': ['uk'],
'hide_untranslated': False,
}
}
----------
Проблема обнаружена. Это был класс ProductImage, связанный с моим продуктом. В админ, когда я добавляю продукт первый раз. Ошибка ProductImage при попытке связаться с Product до его создания. И это похоже на ссылку на переведенное поле от Django-parler.