Django ORM join statements

Я изучаю django queryset API, и это так ошеломляет. Я привык к sql-запросам и мне просто нужен базовый оператор join, где 2 таблицы соединяются вместе

Как я могу получить этот результат в shell?

SELECT e.emp_lastname,e.emp_firstname,o.job_description
FROM hs_hr_employee e
INNER JOIN ohrm_job_title o ON e.job_title_code = o.id
WHERE e.work_station='101';

hs_hr_employee

from django.db import models

class HsHrEmployee(models.Model):
emp_number = models.AutoField(primary_key=True)
employee_id = models.CharField(max_length=50, blank=True, null=True)
emp_lastname = models.CharField(max_length=100)
emp_firstname = models.CharField(max_length=100)
job_title_code = models.ForeignKey('OhrmJobTitle', models.DO_NOTHING, 
db_column='job_title_code', blank=True, null=True)
work_station = models.ForeignKey('OhrmSubunit', models.DO_NOTHING, 
db_column='work_station', blank=True, null=True)

hs_hr_job_title

class OhrmJobTitle(models.Model):
job_title = models.CharField(max_length=100)
job_description = models.CharField(max_length=400, blank=True, 
null=True)

я добавил модели

Вы можете фильтровать с помощью:

qs = HsHrEmployee.objects.filter(
    work_station_id=101
).select_related('job_title_code')

Для HsHrEmployee объектов модели, возникающих из этого кверисета, можно определить job_title например, с помощью:

for item in qs:
    print(item.job_title_code.job_title)
Вернуться на верх