2010-08-08 11 views
5

Ciao Voglio avere una versione in testo normale del mio contenuto disponibile. Quindi ho un modello separato per quello. Sto chiamando render_to_response con mimetype="text/plain" ma voglio dire a un browser che apre quella pagina nella risposta http che il contenuto è codificato in utf-8. Come faccio a farlo (ad es. Cosa devo aggiungere a render_to_response)?invio intestazione di codifica del contenuto in django

risposta

7

Basta aggiungere charset a mimetype in questo modo:

mimetype="text/html; charset=utf-8" 

Cosa succede realmente dietro scena è che mimetype è preso fuori kwargs in render_to_response.

httpresponse_kwargs = {'mimetype': kwargs.pop('mimetype', None)} 
return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs) 

e inviato al HttpResponse che lo imposta come content_type:

if mimetype: 
    content_type = mimetype  # For backwards compatibility 
if not content_type: 
    content_type = "%s; charset=%s" % (settings.DEFAULT_CONTENT_TYPE, 
       settings.DEFAULT_CHARSET) 
+0

Nelle nuove versioni di Django il parametro è chiamato content_type invece di tipo MIME. –

Problemi correlati