Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django-parler对抽象模型的翻译_Python_Django_Django Parler - Fatal编程技术网

Python 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:

我的django应用程序也必须是可翻译的静态页面和模型。为了翻译模型,我使用了django parler应用程序。这很好,但对于简单模型,我的意思是,不从抽象模型类继承的模型

假设我们有一个车辆抽象模型

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
。我该怎么办?