Внутреннее объединение не работает при сериализации данных

Подобные вопросы задавались и раньше, но я не могу использовать ни один из ответов для своего случая.

Желаемый (SQL) запрос:

SELECT  project.name, invitation.*
FROM invitation
INNER JOIN project ON invitation.project_id_id=project.id;

Модели:

class project(models.Model):
    project_code = models.CharField(max_length=250, null=False, blank=False)
    internal_code = models.CharField(max_length=250, null=True, blank=True, unique=True)
    name = models.CharField(max_length=250, null=False, blank=False)


class invitation(models.Model):
    project_id = models.ForeignKey(
        project,
        on_delete=models.CASCADE
    )
    country = models.CharField(
        max_length=250,
        null=False,
        blank=False,
    )

Желаемый результат после запроса:

project.name invitation.project_id invitation.country
Project_1 1 Madagascar
Project_2 2 Laos

Вид:

def search(request):
    if request.method == 'GET':
        result = invitation.objects.select_related('project_id')
        data = serialize("json", result, cls=DatetimeJSONEncoder)
        return HttpResponse(data, content_type="application/json")
    return HttpResponse('')

Здесь я использовал select_related, как предлагалось во многих других вопросах SO, однако, если я печатаю data (уже сериализованный), нет никаких полей из модели project. inner join не работает, я сделал что-то не так.

print(data):

[{"model": "app_name.invitation", "pk": 19, "fields": {"project_id": 1, "country": "Madagascar"}}, {"model": "app_name.invitation", "pk": 20, "fields": {"project_id": 2, "country": "Laos"}}]

print(str(result.query))

SELECT "app_name_invitation"."id", "app_name_invitation"."project_id_id", "app_name_invitation"."country", "app_name_project"."name" FROM "app_name_invitation" INNER JOIN "app_name_project" ON ("app_name_invitation"."project_id_id" = "app_name_project"."id")

Почему project.name отсутствует в сериализованных данных?

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