Запрос с двумя ForeignKeys в модели и фильтрация по одному из ForeignKey

У меня есть три модели:

class SegmentEffort(models.Model):
    id = models.BigIntegerField(primary_key=True)
    activity = models.ForeignKey(to=Activity)
    segment = models.ForeignKey(to=Segment)

class Segment(models.Model):
    id = models.BigIntegerField(primary_key=True)
    name = models.CharField(max_length=255)

class Activity(models.Model):
    id = models.BigIntegerField(primary_key=True)
    user = models.ForeignKey(to=settings.AUTH_USER_MODEL)
    name = models.CharField(max_length=255)

Я хочу получить все отдельные сегменты из SegmentEffort, где SegmentEffort фильтруется по Activity, принадлежащим определенному пользователю.

Я могу получить список всех идентификаторов сегментов с помощью:

sids = SegmentEffort.objects.filter(activity__user=10).order_by('segment_id').values_list('segment_id',
                                                                                                  flat=True).distinct()

Но я не могу разобраться с тем, как получить отдельный сегментный кверисет... Не хватает опыта работы с запросами по двум ForeignKeys в модели (SegmentEffort).

Спасибо за помощь, и не стесняйтесь обращаться за разъяснениями, если вопрос неясен!

Вернуться на верх