Ваш текущий «внутренний набор запросов» не даст вам несколько значений, он возвращает только 1.
Topic.objects.get(subject=subject).only('id').all()
Вы используете .objects.get()
, который возвращает экземпляр модели, например, .only()
или .all()
в этом случае не будет работать, если ваша модель не имеет такой определенной функции.
Кроме того, вам действительно не нужны 2 набора запросов, вы можете получить результат только с одним:
my_subject_ids = [...] # these are the ids of Subject models you want
Question.objects.filter(topic__subject_id__in=my_subject_ids)
Вы также можете запросить Subject.name
, просто используйте для этого следующее: topic__subject__name__in=my_list
.
Если вы хотите запросить конкретный c Subject
-экземпляр, вы можете использовать topic__subject=my_obj
.
Вы также можете посмотреть docs для получения дополнительной информации об этом.