2016-06-20 4 views
0

Скажите, что у меня есть много-много полей отношений в моей модели, то, что я пытаюсь сделать, это получить все связанные сущности, если поле в сущности эквивалентно MAMMAL. В настоящее время я делаю это в понимании списка, но задаюсь вопросом, есть ли более элегантное решение, которое предоставляют модели django.Django filter manytomany results

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

ответ

2

многие-ко-многим поле дает менеджер, так же, как стандартный Model.objects() один, и вы можете отфильтровать его точно таким же образом:

related_entity.filter(entity_type__entity_type_label="MAMMAL") 
+0

Ах спасибо! поэтому при фильтрации я должен всегда делать model__field = 'somevalue'? Я фильтровал model.field = 'value'. –

+0

Нет, это для отношений: это 'поле__relatedfield = 'valueofrelatedfield''. Вы не показывали свои фактические модели, поэтому немного сложно узнать, нужно это вам или нет. –

+0

Получил, спасибо! –