Python Django hvad查询可翻译模型
我正在使用Hvad创建可翻译模型,但在尝试获取模型时出错 我有两个模型类,如下所示:Python Django hvad查询可翻译模型,python,django,multilingual,django-hvad,Python,Django,Multilingual,Django Hvad,我正在使用Hvad创建可翻译模型,但在尝试获取模型时出错 我有两个模型类,如下所示: class Boy(TranslatableModel): age = models.PositiveSmallIntegerField() toy = models.ForeignKey(Toy) translations = TranslatedFields( name = models.CharField(max_length=60), ) class Toy(Transla
class Boy(TranslatableModel):
age = models.PositiveSmallIntegerField()
toy = models.ForeignKey(Toy)
translations = TranslatedFields(
name = models.CharField(max_length=60),
)
class Toy(TranslatableModel):
price = models.PositiveSmallIntegerField()
translations = TranslatedFields(
model_name = models.CharField(max_length=60),
)
我正在尝试进行如下查询:
Boy = Boy.objects.language('en').filter(name="john", toy__model_name="car")
我得到以下错误:
要从未翻译的模型访问翻译字段,如“model_name”,必须使用翻译感知管理器。对于不可翻译的模型,可以使用hvad.utils.get\u translation\u aware\u管理器获取一个。
对于可翻译模型,请使用language()方法
以下工作非常完美:
Boy = Boy.objects.language('en').filter(name="john")
因此,错误是当我添加//toy\uuuu model\u name=“car”时//
我做错了什么?实现我想要的东西的方法是什么?不幸的是,目前不支持深度翻译的参数。这可能会在下一次大规模重写hvad时有所改变,但目前还没有时间表。(它是在开发分支上实现的,但是太多的bug使它无法掌握) 同时,嵌套查询应该可以工作:
Boy = Boy.objects.language('en').filter(name="john", toy__in=Toy.objects.language('en').filter(model_name="car"))
如果使用postgresql,性能应该不会有太大变化,postgresql足够聪明,可以正确地对此进行优化。不幸的是,目前不支持深度转换参数。这可能会在下一次大规模重写hvad时有所改变,但目前还没有时间表。(它是在开发分支上实现的,但是太多的bug使它无法掌握) 同时,嵌套查询应该可以工作:
Boy = Boy.objects.language('en').filter(name="john", toy__in=Toy.objects.language('en').filter(model_name="car"))
如果使用postgresql,性能应该不会有太大变化,postgresql足够聪明,可以正确地对此进行优化