gpt4 book ai didi

python - 抽象模型的 django-parler 翻译

转载 作者:行者123 更新时间:2023-12-05 07:39:33 24 4
gpt4 key购买 nike

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

假设我们有一个 Vehicle 抽象模型

class Vehicle(TranslatableModel):

translations = TranslatedFields(
description=models.CharField(max_length=100)
)

class Meta:
abstract = True

还有一个子模型,它是汽车:

class Car(Vehicle)
"""..."""

这给我带来了这个错误:TypeError: Can't create TranslatedFieldsModel for abstract class Vehicle

我想仍然使用 Django 模型继承。那么,我可以做些什么来使用 django-parler 翻译我的模型,它支持抽象模型的翻译,或者我需要使用另一个应用程序来实现这一点,在这种情况下有什么建议吗?

最佳答案

问题是,parler 隐式地为翻译创建了一个额外的数据库表,它有一个 ForeignKey 到声明翻译字段的模型。您不能对抽象模型拥有 FK,因为它没有自己的数据库表。如果你有两个模型子类化这个抽象模型怎么办?翻译表的FK指向哪个表?

如果你想跨模型共享相同的可翻译字段并且仍然相对干燥,你可以尝试在你的模型之外实现可翻译字段:

vehicle_translations = TranslatedFields(
description=models.CharField(max_length=100)
)

class Car(TranslatableModel):
translations = vehicle_translations

关于python - 抽象模型的 django-parler 翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47021646/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com