Как я могу изменить этот запрос в 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)