Тут 2 пути:
Создавать из полученного queryset словарь вручную и отдавать через
JsonResponse.
Использовать
DRF.
Первый вариант можно использовать, если вам нужно создать несколько "простых" json`ов, не требующих особой защиты.
Второй - если нужно получать сложные json`ы (Условный пример: нужно получить автора и все его публикации за последнюю неделю и, например, самый популярный коммент для каждого поста). При этом, чтобы все внешние связи были человекочитаемыми) или же нужно ограничить доступ к данным (напр. список черновиков может видеть только автор).
p.s. Безусловно, второй вариант можно решить и штатными методами, но человеко-часов потрачено будет на порядок больше.