Проблемы с интеграцией django-simple-history с django-modeltranslation в абстрактной модели.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Проблемы с интеграцией django-simple-history с django-modeltranslation в абстрактной модели.

Сообщение Anonymous »

Я работаю над проектом Django, где пытаюсь создать абстрактную модель, предоставляющую подклассам модели отслеживание истории с помощью пакета django-simple-history. Кроме того, мне нужно интегрировать django-modeltranslation для перевода определенных полей. Однако у меня возникли проблемы с интеграцией.
Вот мой код BaseModel:

Код: Выделить всё

from uuid import uuid4
from django.db import models
from simple_history.models import HistoricalRecords

class BaseModel(models.Model):
class Meta:
abstract = True

history = HistoricalRecords(inherit=True)

id = models.UUIDField(primary_key=True, default=uuid4, editable=False)
created_at = models.DateTimeField(null=True, blank=True, auto_now_add=True)
updated_at = models.DateTimeField(null=True, blank=True, auto_now=True)
Теперь у меня есть модель TestModel, которая наследуется от BaseModel:
models.py

Код: Выделить всё

class TestModel(BaseModel):
text = models.CharField(max_length=100)
un = models.IntegerField()
new_text = models.CharField(max_length=100)

А для перевода полей в TestModel у меня есть следующая настройка перевода:
translation.py

Код: Выделить всё

from modeltranslation.translator import register, TranslationOptions
from test_app.models import TestDeleteModel

@register(TestModel)
class TestModelTranslationOptions(TranslationOptions):
fields = (
'text',
'new_text',
)
Однако проблема возникает, когда django-simple-history не распознает переведенные поля, такие как text_en, в результате чего они не добавляются в модель истории. Похоже, это происходит потому, что поля перевода добавляются после того, как пакет простой истории регистрирует модель и создает модель истории.
Я попытался снова зарегистрировать TestModel с помощью simple_history после регистрации перевода по адресу это:
translation.py

Код: Выделить всё

from modeltranslation.translator import register, TranslationOptions
import simple_history
from test_app.models import TestDeleteModel

@register(TestDeleteModel)
class TestDeleteModelTranslationOptions(TranslationOptions):
fields = (
'text',
'new_text',
)

simple_history.register(TestDeleteModel)
Однако это привело к ошибке simple_history.Exceptions.MultipleRegistrationsError с сообщением «TestModel зарегистрирована несколько раз для отслеживания истории».
Любая информация по разрешению этот вопрос был бы очень признателен. Заранее спасибо за помощь!

Подробнее здесь: https://stackoverflow.com/questions/782 ... tion-in-ab
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»