Python django-parler对抽象模型的翻译
我的django应用程序也必须是可翻译的静态页面和模型。为了翻译模型,我使用了django parler应用程序。这很好,但对于简单模型,我的意思是,不从抽象模型类继承的模型 假设我们有一个车辆抽象模型Python django-parler对抽象模型的翻译,python,django,django-parler,Python,Django,Django Parler,我的django应用程序也必须是可翻译的静态页面和模型。为了翻译模型,我使用了django parler应用程序。这很好,但对于简单模型,我的意思是,不从抽象模型类继承的模型 假设我们有一个车辆抽象模型 class Vehicle(TranslatableModel): translations = TranslatedFields( description=models.CharField(max_length=100) ) class Meta:
class Vehicle(TranslatableModel):
translations = TranslatedFields(
description=models.CharField(max_length=100)
)
class Meta:
abstract = True
还有一个是汽车的儿童模型:
class Car(Vehicle)
"""..."""
这引发了以下错误:类型错误:无法为抽象类车辆创建TranslatedFieldsModel
我仍然希望使用django模型继承。那么,我该如何使用django parler翻译我的模型呢?它支持抽象模型的翻译,或者我需要使用另一个应用程序来实现这一点,在这种情况下,有什么建议吗?问题是,parler隐式地为翻译创建一个额外的db表,该表对声明翻译字段的模型具有
ForeignKey
。不能将FK连接到抽象模型,因为它没有自己的db表。如果有两个模型子类化这个抽象模型呢?翻译表的FK指向哪个表
如果希望跨模型共享相同的可翻译字段,并且仍然相对干燥,则可以尝试在模型外部实现可翻译字段:
vehicle_translations = TranslatedFields(
description=models.CharField(max_length=100)
)
class Car(TranslatableModel):
translations = vehicle_translations
最好的解决方案是使用
TranslatedField
,如文档中所述:如何放置其他字段翻译?translations2=另一个基础类翻译。我承认,更多的翻译将很难添加:)#在我的情况下,它仍然会抛出相同的错误。django parler是否支持与抽象类一起使用,或者我是否可以使用其他软件包?我有同样的问题,但我不想使用TranslatedField
。我该怎么办?