Я изучаю API набора запросов django, и это так ошеломляет. Я привык к оператору sql, и мне просто нужен базовый оператор соединения, в котором две таблицы объединяются.
Как я могу получить этот результат в оболочке?
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)
этот код печатает только позиции. Я хочу что-то вроде фамилии, должности. что-то вроде item.emp_lastname.job_title, но вывод не отображается
я могу сделать как item.emp_lastname но как я могу добавить job_description
я получил это {{ list.emp_lastname }} {{ list.job_title_code.job_title }} его общие представления полностью забыл
Пожалуйста, предоставьте свои модели django, чтобы мы могли лучше понять.