4

我很好奇是否可以使用相关字段来引发自定义连接查询。我想在django-parler中应用它,这是一个 Django 的多语言应用程序。

例如,当“slug”是一个翻译字段时,我想要:

    MyModel.objects.filter(slug="foo")

操作为:

    MyModel.objects.fiter(translations__slug="foo")

在引擎盖下。例如,这可以通过 RelatedField 类的 API 实现吗?

我注意到类中有几个 API 钩子RelatedField,例如m2m_reverse_field_name()m2m_target_field_name()m2m_column_name()extra_filters()。它们在GenericRelationdjango-taggit 的TaggableManager类中使用,但我不知道这些是如何工作的。

NB 对实例的字段访问包含在django-parler中,我也希望将其扩展到 ORM 查询。

4

1 回答 1

1

文档说您可以这样做以按特定的翻译字段进行过滤:

MyObject.objects.filter(
    translations__language_code__in=get_active_language_choices(),
    translations__slug='omelette'
)

这应该可以满足您查询特定语言的翻译“slug”字段值的需要。

于 2013-10-27T21:42:45.983 回答