如何在pivottable.js函数中引用上下文数据

时间:2016-08-09 07:20:02

标签: django pivottable.js

我有一个django项目设置。我正在使用pivottable.js(https://github.com/nicolaskruchten/pivottable

添加一个带有pivottable的新页面

我的问题是我无法从pivottable.js jQuery函数中加载来自views.py context {{data}}的csv数据。

在我的views.py中:

def sysdev_pivottable(request):
    context = {}
    csvString = ""
    with open("W:\\data.csv", 'rb') as csvfile:
        reader= csv.reader(csvfile, delimiter=',', quotechar='|')
        for row in reader:
            csvString = csvString + ','.join(row)

    context['data'] = csvString
    template = loader.get_template('pivottable.html')
    return HttpResponse(template.render(context, request))

在pivottable.html中:

...

<h1> Test load: {{ data }}</h1> #this displays data properly
<script type="text/javascript">

$(function()
{
    var input1 = "1,2,3,4" #test data declared within the function()
    $("#output").pivotUI(input1, {}); #this loads properly
    var input2 = {{data}} ##this doesn't work, would break the rest of the <script>
});
    </script>
        <div id="output" style="margin: 10px;">
        </div>

我不知道如何在{{data}}内正确加载$(function(){})。在$(function(){})之外,我可以正确加载{{data}}。谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

正如@AnnaVracheva所说,我的主要问题是忘记{{data}}周围的引文。此外,我使用jquery.csv(https://github.com/evanplaice/jquery-csv)来格式化我的输入数据,一切正常。

$(function() { var input = $.csv.toArrays("{{data}}") $("#output").pivotUI(input, { rows: ["RowValue"], cols: ["ColValue"] }); });
</script>
<div id="output" style="margin: 10px;">
</div>