2010-08-08 22 views
5

Bonjour Je souhaite disposer d'une version en texte brut de mon contenu. J'ai donc un modèle distinct pour cela. J'appelle render_to_response avec mimetype="text/plain" mais je veux dire à un navigateur ouvrant cette page dans la réponse http que le contenu est codé en utf-8. Comment puis-je faire cela (par exemple, que dois-je ajouter à render_to_response)?Envoyer un en-tête de codage de contenu dans django

Répondre

7

Il suffit d'ajouter à charset MIMETYPE comme ceci:

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

Qu'est-ce qui se passe vraiment derrière la scène est que mimetype est mis hors kwargs en render_to_response.

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

et envoyé à HttpResponse qui définit comme 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

Dans les nouvelles versions de Django le paramètre est appelé content_type insted de mimetype. –