如何在视图上下文DJANGO中添加变量?

时间:2015-05-24 15:34:34

标签: django

我有这段代码但是当我尝试将a放到上下文视图时它不起作用。我是这方面的初学者。非常感谢你的帮助!

from django.shortcuts import render, render_to_response, RequestContext
import csv

a = []
with open('test.csv', 'rb') as csvfile:
    spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
    for row in spamreader:
        a.append(row)

def home (request):
    return render_to_response("home.html", locals(), context_instance=RequestContext(request))

3 个答案:

答案 0 :(得分:1)

关于标识,您需要使用4个空格来编写Python。

试试这个:

from django.shortcuts import render, render_to_response, RequestContext
import csv

def get_data():
    with open('test.csv', 'rb') as csvfile:
        a = []
        spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
        for row in spamreader:
            a.append(row)
        return {'csvdata': a}

def home(request):
    return render_to_response('home.html', get_data(), context_instance=RequestContext(request))

然后,您应该可以在模板中使用a名称来呼叫csvdata

答案 1 :(得分:0)

问题是a是全局范围内的名称,因此不属于locals()。而不是locals(),而是显式传递模板所需的参数(例如a)。

答案 2 :(得分:0)

from django.shortcuts import render, render_to_response, RequestContext
import csv

def home(request):
    with data as csv.reader( open('myfile.csv', 'r'), delimiter=','):
        return render_to_response('home.html', {'data': data}, context_instance=RequestContext)
我编写的代码中的

data应该包含行列表。