我很好奇是否可以使用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查询。
答案 0 :(得分:1)
文档说您可以按特定的翻译字段进行过滤:
MyObject.objects.filter(
translations__language_code__in=get_active_language_choices(),
translations__slug='omelette'
)
这应该满足您查询特定语言中翻译的“slug”字段值的需要。