Вы не можете сделать это с общими отношениями, потому что ничто не может гарантировать, что у целевой модели даже будет поле edible
.
Альтернативой является изменение структуры для использования наследования модели (для нескольких таблиц). Vegetable и Mineral наследуются от модели Taggable
, которая содержит поле edible
(или что-то еще, что вам нужно отфильтровать). Тогда TaggedItem
будет иметь стандартный ForeignKey
до Taggable
, так что вы будете использовать стандартный синтаксис фильтра с двойным подчеркиванием.