Как я могу изменить этот запрос в ORM? (JOIN без внешнего ключа и порядок по второй таблице)

Здравствуйте, у меня есть две такие модели,

class Sample(models.Model):
    name = models.CharField(max_length=256)  ##
    processid = models.IntegerField(default=0)  # 


class Process(models.Model):
    sample = models.ForeignKey(Sample, blank=False, null=True, on_delete=models.SET_NULL, related_name="process_set")
    endstat = models.CharField(max_length=5, choices=ENDSTATChoice, default='0')

и я хочу объединить модель Sample и модель Process. Потому что образец связан с процессом, и я хочу получить информацию о процессе с помощью образца .

SELECT sample.id, sample.name, process.id,process.endstat
FROM sample 
INNER JOIN process 
ON sample.processid = process.id 
ORDER BY process.endstat;

Как я могу сделать с помощью ORM такой SQL?

Поскольку вам нужны данные Process. Логичнее работать с:

qs = Process.objects.filter(
    sample__isnull=False
).select_related('sample').order_by('endstat')

Это также получит связанные данные для связанного Sample, вы можете обработать их, обратившись к полям атрибута .sample:

for process in qs:
    print(process.sample.name)
Вернуться на верх