Я использую перевод модели Django для мультиязычного сайта (английский (по умолчанию), арабский, французский), проблема в том, что при сохранении данных в администраторе django по умолчанию переопределяются поля арабского и французского перевода.Но в базе данных представлено реальное значение.
Моя модель: plan / models.py
class operators(models.Model):
country = models.ForeignKey(Country, on_delete=models.CASCADE)
operator = models.CharField(max_length=100, null=True, blank=True)
image = models.ImageField(verbose_name=_('Operator Logo'), max_length=255,null=True,blank=True)
class Meta:
verbose_name = 'Operator'
verbose_name_plural = 'Operators'
db_table = 'operator'
def __str__(self):
return self.operator
plan / translation.py:
@register(operators)
class OperatorsTranslationOptions(TranslationOptions):
fields = ('operator',)
plan / admin.py:
class OperatorAdmin(admin.ModelAdmin):
list_display = ('operator', 'country')
.
.
.
admin.site.register(operators, OperatorAdmin)
settings.py:
INSTALLED_APPS = [
'modeltranslation',
.
.
.
'plan',
]
.
.
.
LANGUAGES = (
('en', gettext('English')),
('ar', gettext('Arabic')),
('fr', gettext('French')),
)
.
.
MODELTRANSLATION_TRANSLATION_FILES = (
'plan.translation',
)
MODELTRANSLATION_DEBUG = True
Ниже приведено значение базы данных
planbaker=# select * from operator;
id | operator | image | country_id | operator_ar | operator_en | operator_fr
----+------------+-----------------------+------------+--------------+-------------+-------------
1 | airtel-ind | pb_Zu2y9BE.jpeg | 1 | | |
3 | aircel | 360_360_1_vsXSDEo.JPG | 2 | ايرتل | aircel |
2 | aircel-sa | 352_hQ4TZVq.jpeg | 2 | زين السعودية | aircel-sa | aircel-sa
Но в Admin все поля имеют значение оператора только на английском языке.Может кто-нибудь сказать, пожалуйста, где я ошибся?Я пробовал и updte_translation_fields и sync_translation_fields, но не помог