J'ai sous-classé la classe Generic DetialView en views.py
et j'essaie de trouver un moyen de renvoyer des données au format JSON en fonction d'un argument reçu dans l'url. Voici ce que j'ai essayé de faire...
# 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
Mais cela m'a donné TypeError
comme il se doit :
TypeError at /category/extended-slug/
context must be a dict rather than JsonResponse.
L'url qui active le ExtendedView
la classe est :
/category/extended-slug?json=true
La question est donc de savoir comment je peux envoyer des données au format JSON à partir d'une classe de vue générique et s'il existe de meilleures façons d'y parvenir.