пытаюсь получить список из django в javascript как данные для csv, но кавычки показаны в формате html - PullRequest
0 голосов
/ 09 ноября 2018
<script type="text/javascript">

/ * csv_list: список списка, полученный из индексной функции django (views.py), например: [['abc', '1'], ['xyz', '0']] * /

    var data = {{csv_list}};

    function genrate_csv() {
        var csv = 'Tweet, Polarity\n';
        data.forEach(function(row) {
                csv += row.join(',');
                csv += "\n";
        });

        console.log(csv);
        var new_elm = document.createElement('a');
        new_elm.href = 'data:text/csv;charset=utf-8,' + encodeURI(csv);
        new_elm.target = '_blank';
        new_elm.download = 'data.csv';
        new_elm.click();
    }
 </script>   

Ошибка при отображении HTML-кода для цитаты error showing html code for quote

 django code: (views.py)

 def index(request):
   if request.method=="POST" and request.POST.get('query') != "":
     tweet_list =    
  script.tweets(request.POST.get('query'),request.POST.get('numtweets'))
    pos,neg,net,csv_list = script.analysis(tweet_list)
    context = {
        'tweet_list' : tweet_list,
        'csv_list' : csv_list,   #passed the list of list
        't': len(tweet_list)
    }
    return render(request,"index.html",context)

1 Ответ

0 голосов
/ 09 ноября 2018

Во-первых, передавайте данные между Python и Javascript, используя правильный формат обмена данными - то есть JSON - вместо того, чтобы полагаться на сходство между синтаксисами.

А во-вторых, вам нужно пометить ваши данные как безопасные в шаблоне, чтобы избежать автоматического удаления. Итак:

context = {
    'tweet_list' : tweet_list,
    'csv_list' : json.dumps(csv_list),
    't': len(tweet_list)
}
return render(request,"index.html",context)

...

var data = JSON.parse('{{ csv_list|safe }}');

Хотя я должен сказать, что в целом я не уверен, почему вы хотите создать этот CSV в Javascript, вместо того, чтобы позволить пользователю загружать его непосредственно из серверной части в виде файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...