2016-04-07 12 views
6

Sto utilizzando Django 1.9.L'argomento context_instance di render_to_string è deprecato

Con render_to_string Posso passare facilmente html reso come json al mio script clientide. Tuttavia, dal momento che il modello di affidamento su variabili quali user, ho bisogno di passare anche la context_instance=RequestContext(request), altrimenti il ​​modello non si sa cosa request.user è, per così if dichiarazioni pausa, ecc

Comunque io sono sempre questo avvertimento deprecazione:

RemovedInDjango110 Avvertenza: l'argomento context_instance di render_to_string è obsoleto. RESPONSE_DATA [ 'content'] = render_to_string ("profilo/userprofile_detail/content.html", contesto, context_instance = RequestContext (richiesta))

Qual è il modo non-deprecato a passare RequestContext in un render_to_string?

risposta

6

render_to_string ha un argomento contesto, in modo da poter semplicemente passare direttamente come un dizionario come si farebbe con qualsiasi altra risposta

render_to_string(template_name, context=None, 
       context_instance=_context_instance_undefined, request=None, using=None) 

La documentazione collegata comprende anche una nota di incoraggiare questo

Deprecated dalla versione 1.8:

L'argomento context_instance è obsoleto. Usa contesto e se necessario richiesta.

2

Il metodo consigliato è quello di passare request quando si chiama render_to_string. Django renderà quindi il modello con un contesto di richiesta.

render_to_string("profile/userprofile_detail/content.html", context, request=request) 
+0

Grazie mille! Finalmente qualcosa che funziona con Django 1.10+. :) Questa dovrebbe essere la risposta corretta, credo. – Teekin