Je prends queryset tournant dans le fichier csv, je reçois même la réponse. Mais le navigateur ne télécharge pas le fichier csv renvoyé. Je suis sur le chrome. Lorsque j'appelle la route de rapport, j'obtiens le texte formaté csv dans ma réponse. Mais cela ne déclenche pas le téléchargement.Django HttpResponse générer csv mais ne pas le télécharger
Voici ma demande de réagir:
this.getReport = (format="json") => {
this.setState({btnDisabled: true});
const requestObj = {
method: 'GET',
headers: {
'Authorization': 'Token ' + this.props.session_token,
'Content-Type': 'application/json',
}
};
const uri = new URI(`${API_ENDPOINT}/email-campaign/report`);
const campaigns = this.state.campaignList.map((campaign)=>(
campaign.value
));
uri.setSearch({
campaigns: [campaigns],
date_from: stringToDateISOString(this.state.dateFrom),
date_to: stringToDateISOString(this.state.dateTo),
data_format: format,
});
return fetch(uri.toString(), requestObj).then(restJSONResponseToPromise).then(responseJSON => {
if (responseJSON.results){
this.setState({report: responseJSON.results, btnDisabled: false});
}
}, (response) => {
clearSessionIfInvalidToken(this.props.clearSession);
this.setState({btnDisabled: false});
});
}
têtes de réponse:
HTTP/1.0 200 OK
Date: 12 juin 2017 19:58:03 GMT
Serveur: WSGIServer/0.2 CPython/3.5.3
Type de contenu: text/csv
X-Frame-Options: SAMEORIGIN
Access-Control-Allow-origine: http://localhost:3000
Variez: Accepter, Origine
Autoriser: GET, OPTIONS
Content-Disposition: attachement; filename = emailcampaign_export.csv;
Cache-Control: no-cache
Votre mixin semble correct. Où 'data_format' est-il défini dans votre vue? Êtes-vous sûr que ce n'est pas une erreur? – Brobin
Je ne suis pas erreur, j'ai oublié d'inclure cette ligne dans la question. J'ai obtenu une réponse http de 200, avec le csv attendu sur le corps de la réponse. C'est juste le fichier qui n'est pas téléchargé dans mon système. –
Est-ce que la réponse http a un en-tête Content-Disposition? https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition –