У меня есть субклассовый класс Generic DetialView в views.py
, и я пытаюсь найти способ вернуть данные в формате JSON на основе аргумента, полученного в URL.Вот что я пытался сделать ...
# views.py
from django.views.generic import DetailView
from django.http import JsonResponse
class ExtendedView(DetailView):
context_object_name = 'post'
model = StorageModel
template_name='posts.html'
def get_context_data(self, **kwargs):
data = super(HacksViewPost, self).get_context_data(**kwargs)
if bool(self.request.GET):
data__ = JsonForm(request.GET)
if data__.is_valid():
json = data__.cleaned_data['json']
if json == 'true':
return JsonResponse({'data': 'data'})
return data
Но это дало мне TypeError
в порядке:
TypeError at /category/extended-slug/
context must be a dict rather than JsonResponse.
URL-адрес, который активирует класс ExtendedView
:
/category/extended-slug?json=true
Итак, вопрос в том, как я могу отправить данные в формате JSON из класса общего представления, и есть ли более эффективные способы добиться этого?