Django过滤多种结果

时间:2016-06-20 21:18:17

标签: python django model

假设我的模型中有多对多的关系字段,如果实体中的字段等同于MAMMAL,我尝试做的就是获取所有相关实体。我目前正在进行列表理解,但想知道django模型是否提供了更优雅的解决方案。

[related_entity for related_entity in related_entity.related_entities.all() if
                                  related_entity.entity_type.entity_type_label == 'MAMMAL']

2 个答案:

答案 0 :(得分:3)

基于Django文档(https://docs.djangoproject.com/en/1.9/topics/db/examples/many_to_many/),您可以使用:

entity.objects.filter(related_entity__entity_type__entity_type_label ==' MAMMAL')

答案 1 :(得分:2)

多对多字段为您提供管理员,就像标准Model.objects()字段一样,您可以完全相同的方式对其进行过滤:

related_entity.filter(entity_type__entity_type_label="MAMMAL")