Nella mia funzione di visualizzazione, mi piacerebbe restituire un oggetto json (data1) e un testo/html (modulo). È possibile?E 'possibile restituire una HttpResponse in django con testo e un oggetto json?
Ecco parte della mia views.py:
if request.is_ajax() and request.method == 'POST':
...
if form.is_valid():
answer = form.cleaned_data['answer'] # Answer extracted from form is also a string
a1 = ques1.correct_answer
if a1 == answer:
test1 = question_list.get(id=nextid)
form = AnswerForm(test1)
ques1 = question_list.filter(id=nextid) # Filter next question as <qs>
data1 = serializers.serialize("json",ques1) # Json-ize
# ********EDITED HERE **********
variables1 = Context({
'form' : form,
'q1' : data1,
})
#response = HttpResponse()
#response['data1'] = response.write(data1)
#response['form'] = response.write(form)
if nextid <= qsnlen:
return HttpResponse(variables1, mimetype="application/json")
#return HttpResponse(response)
else:
...
mi piacerebbe rispedire sia la forma HTML e l'oggetto ques1 JSON. Come posso fare questo? Grazie in anticipo.
Giusto per essere chiari al 100% - io mando un HttpRequest richiesta POST con i dati del modulo (tramite ajax), quindi posso solo indirizzarlo a una funzione di visualizzazione. Nel mio scenario, quando l'utente invia una risposta a una domanda, mi piacerebbe prendere in quei dati, fare cose con esso, e quindi inviare un'altra domanda json oggetto e un nuovo modulo di input. –
È possibile restituire una risposta, con più oggetti nel contesto. Questo può essere di un solo _mime type_ - in modo che tu possa inviare più oggetti in una risposta; ma tu * non puoi * combinare due tipi MIME in una sola risposta. Nell'esempio si imposta il mimetype come 'application/json'. Puoi tecnicamente inviare tutto ciò che vuoi e inserire il mimetype come vuoi, ma questo non farà ciò che desideri sul client. Per inviare l'HTML per il modulo e l'oggetto JSON: aggiungere l'oggetto JSON al contesto della risposta. –
Si prega di controllare il codice modificato sopra. Ho aggiunto sia il modulo che l'oggetto json al contesto, e lo rimando indietro. È ciò che intendi? L'oggetto json leggerà correttamente sul lato client (sto usando jquery)? Leggere questo dal lato del cliente sarà un po 'un incubo, penso. Non ho usato RequestContext poiché ci sono molte più variabili che vengono restituite che non ho bisogno. Grazie per l'aiuto. –