假设我的模型中有多对多的关系字段,如果实体中的字段等同于MAMMAL,我尝试做的就是获取所有相关实体。我目前正在进行列表理解,但想知道django模型是否提供了更优雅的解决方案。
[related_entity for related_entity in related_entity.related_entities.all() if
related_entity.entity_type.entity_type_label == 'MAMMAL']
答案 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")