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

我正在使用Hvad创建可翻译模型,但在尝试获取模型时出错

我有两个模型类,如下所示:

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足够聪明,可以正确地对此进行优化