我正在研究django 1.5.12中的一个项目。安装了django-cms的版本。 我有一个由命令“pip freeze> frozen.txt”生成的文件,其中包含我已安装的内容的下一条信息:
Django==1.5.12
MySQL-python==1.2.5
South==1.0.2
argparse==1.2.1
distribute==0.6.24
django-classy-tags==0.6.2
django-cms==2.4.3
django-mptt==0.5.2
django-sekizai==0.8.2
html5lib==1.0b7
six==1.9.0
wsgiref==0.1.2
好吧,我的问题是我的项目中有一个应用程序,我在views.py中有下一个代码:
from django.shortcuts import *
def test(request):
data = {'test 1': [ [1, 10] ], 'test 2': [ [1, 10] ],'test 3':[ [2,20]] }
print data # to see if function works
return render_to_response("project_pages.html",{'data':data},context)
在我的模板project_pages.html中,我有这个:
<table>
<tr>
<td>field 1</td>
<td>field 2</td>
<td>field 3</td>
</tr>
{% for author, values in data.items %}
<tr>
<td>{{author}}</td>
{% for v in values.0 %}
<td>{{v}}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
并且不呈现对模板的响应。并在终端没有显示任何错误。该功能正在运行,因为它正在打印数据。
如果尝试返回这样的内容:
return render_to_response("project_pages.html",{'data':data})
最后没有上下文(这是不同的调用)它给了我下一个错误:
"You must enable the 'sekizai.context_processors.sekizai' template "
TemplateSyntaxError: You must enable the 'sekizai.context_processors.sekizai' template context processor or use 'sekizai.context.SekizaiContext' to render your templates.
在我的settings.py中,我有sekizai:
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.i18n',
'django.core.context_processors.request',
'django.core.context_processors.media',
'django.core.context_processors.static',
'cms.context_processors.media',
'sekizai.context_processors.sekizai',
'sekizai.context.SekizaiContext',
)
那么,我该怎么办?
答案 0 :(得分:2)
查看上下文变量的内容。应该有类似的东西:
示例:
from django.template import RequestContext
def view(request):
...
return render_to_response(
"project_pages.html",
{'data':data},
context_instance=RequestContext(request),
)
答案 1 :(得分:1)
对于来这里寻找django 1.8或更高版本的人应该使用以下代码。 现在,如果您正在编写自定义视图,则不会从setting.py文件direclty中选择模板上下文处理器。
使用以下代码使其正常工作:
from sekizai.context import SekizaiContext
def view(request):
...
return render_to_response('template.html',
SekizaiContext(request, {'data': data}))
答案 2 :(得分:0)
在这个模板中,我有一些信息,当用户按下按钮向django提交一些信息进行处理时我不想丢失,所以我在javascript中创建了一个允许提交但不刷新的功能这页纸。 如果没有刷新,内容将保持静态,响应中的数据变量不会发送到模板