使用Django RelatedField进行自定义连接查询?

时间:2013-09-20 09:48:01

标签: django django-orm django-models django-related-manager

我很好奇是否可以使用RelatedField来导致自定义连接查询。 我想在django-parler中应用这个,这是Django的多语言应用程序。

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

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

操作为:

    MyModel.objects.fiter(translations__slug="foo")
引擎盖下。 这可以通过RelatedField类的API实现,例如?

我注意到RelatedField类中有几个API挂钩,例如m2m_reverse_field_name()m2m_target_field_name()m2m_column_name()extra_filters()等。在GenericRelation和django-taggit的TaggableManager课程中,但我不知道这些是如何工作的。

N.B。 django-parler涵盖了对实例的字段访问,我也希望将其扩展到ORM查询。

1 个答案:

答案 0 :(得分:1)

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

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

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