2010-08-08 14 views
5

Hola quiero tener disponible una versión de texto claro de mi contenido. Entonces tengo una plantilla separada para eso. Llamo al render_to_response con mimetype="text/plain" pero quiero decirle a un navegador que abre esa página en la respuesta http que el contenido está codificado para utf-8. ¿Cómo hago eso (por ejemplo, qué tengo que agregar al render_to_response)?enviando encabezado de codificación de contenido en django

Respuesta

7

Sólo tiene que añadir a charset mimeType así:

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

Lo que realmente sucede detrás de escena es que mimetype se saca de kwargs en render_to_response.

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

y enviado a HttpResponse que lo establece como 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

En las nuevas versiones de Django el parámetro se denomina content_type insted de tipo MIME. –

Cuestiones relacionadas