Ошибка JsonResponse при получении списка пользователей на Createview - Django

Я пытаюсь получить всех пользователей, у которых есть группа 'decoration' в поле формы. Я использую JsonResponse для получения списка в реальном времени, когда пользователь начинает вводить текст.

class PostCreateView(LoginRequiredMixin, CreateView):
    model = Post
    fields = ['...']
def get_form(self, form_class=None):
        form = super().get_form(form_class)
        if 'term' in self.request.GET:
            qs = User.objects.filter(groups__name='decoration', username__icontains=self.request.GET.get('term'))
            titles = list()
            for product in qs:
                titles.append(product.username)
            form.fields['culture'] = titles
            return JsonResponse(form, safe=False)
        return form

Если я сделаю печать этого, код работает, выводит мне правильного пользователя, но я получаю следующую ошибку "TypeError: Object of type PostForm is not JSON serializable'.

Титры на самом деле являются списком, я не смог понять, почему выдает эту ошибку.

Я не думаю, что проблема заключается в невозможности передать JsonResponse в CreateView. Проблема заключается в строке return JsonResponse(form, safe=False). Ошибка возникает именно в ней, а не в list(). Попробуйте print(form) и вы поймете, в чем дело. Строка form - это HTML, со всеми тегами и т.д... в HTML-форме. Поэтому он не сериализуется в JSON, да и не имеет смысла. Вы можете попробовать передать поля формы в JsonResponse:

return JsonResponse({'form': form.cleaned_data}, safe=False)
Вернуться на верх