Django, DRF: две разные модели в одном наборе запросов

Как получить следующие две модели в одном наборе запросов? Необходимо выполнить сортировку и поиск.

class Video(models.Model):
    title = models.CharField(max_length=300)
    image_url = JSONField()
    sample_image_url = JSONField(blank=True, null=True)
    sample_movie_url = models.URLField(max_length=1000, blank=True, null=True)
    review = JSONField(blank=True, null=True)
    ...

class UserVideo(models.Model):
    title = models.CharField(max_length=300)
    thumbnail_url = models.URLField(max_length=1000, unique=True)
    preview_url = models.URLField(max_length=1000, blank=True, null=True)
    tags = models.ManyToManyField(Tag, blank=True, db_index=True)
    ...

Я пробовал .union(), но получаю следующую ошибку

qs = Video.objects.all()
qs2 = UserVideo.objects.all()
print(qs.union(qs2))
django.db.utils.ProgrammingError: each UNION query must have the same number of columns

При указании id в .values() объединение работает успешно, но нам нужно получить разные поля для обеих моделей.

Кроме того, поскольку мы используем DRF, нам нужен способ работы с ModelSerializer.

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