我在使用django-eav翻译model translation字段时遇到了奇怪的麻烦。我想翻译EnumValue字段value
。 translate.py中的代码在这里
class EnumValueTranslationOptions(TranslationOptions):
fields = ('value', )
translator.register(EnumValue, EnumValueTranslationOptions)
value
位于eav / models.py中:
class EnumValue(models.Model):
value = models.CharField(_(u"value"), db_index=True,
unique=True, max_length=50)
icon = models.ImageField(upload_to='enumvalue_icons/',blank=True,null=True, max_length=300, verbose_name=_('Icon'))
问题是,我已经在数据库中有很多EnumValues。当我编写此转换代码并进行迁移时,旧值就会消失。对象仍然存在于icon
等其他字段,但值为空。如果我尝试添加之前存在的值,它会说:值已存在。如果我评论翻译代码并进行迁移,旧值将重新到位。为什么会这样?