很抱歉,如果它是noob代码或问题。我正在使用django-pagination进行分页,我正在这样做。但是这在我的页面上给了我keyError,它还提到它在模板渲染过程中出错。我在这里做错了。我已经成功安装了分页,修改了settings.py文件。但我不知道我需要做什么。任何帮助将受到高度赞赏。
<table class="active_table" summary="active_user">
<thead>
<tr><th>Name</th><th>Mobile Number</th><th>Count</th></tr>
</thead>
<tbody id="table_content">
{% load pagination_tags %}
{% block content %}
{% autopaginate response_data 5 %}
{% for b in response_data %}
<tr class="table_rows"><td>{{ b.name }}</td><td>{{ b.mobile_number }}</td><td>{{ b.count }}</td></tr>
{% endfor %}
{% paginate %}
{% endblock %}
</tbody>
</table>
此处粘贴了详细的追溯http://dpaste.com/919526/
视图代码如下
@csrf_exempt
def active_user_table(request,b): if request.method!=“GET”: 提高Http404
if (b=='4'):
cursor = connection.cursor()
cursor.execute("SELECT core_user.id, name,mobile_number,COUNT(*) as count, created FROM core_user,core_useractivity WHERE core_user.id = core_useractivity.user_id GROUP BY user_id ORDER BY count DESC")
response_data = dictfetchall(cursor)
return render_to_response("siteadmin/active_user_table.tmpl",{'response_data':response_data})
elif (b=='3'):
cursor = connection.cursor()
cursor.execute("SELECT core_user.id, name, mobile_number, COUNT(*) as count, created FROM core_user, core_useractivity WHERE core_user.id = core_useractivity.user_id AND MONTH(CAST(created as date)) = MONTH(NOW()) AND YEAR(cast(created as date)) = YEAR(NOW()) GROUP BY user_id ORDER BY count DESC")
response_data = dictfetchall(cursor)
return render_to_response("siteadmin/active_user_table.tmpl",{'response_data': response_data})
elif (b=='2'):
cursor = connection.cursor()
cursor.execute("SELECT core_user.id, name, mobile_number, COUNT(*) as count, created FROM core_user, core_useractivity WHERE core_user.id = core_useractivity.user_id AND DATEDIFF(NOW(), created) <= 7 GROUP BY user_id ORDER BY count DESC")
response_data = dictfetchall(cursor)
return render_to_response("siteadmin/active_user_table.tmpl",{'response_data': response_data})
elif (b=='1'):
cursor = connection.cursor()
cursor.execute("SELECT core_user.id, name, mobile_number, COUNT(*) as count, created FROM core_user, core_useractivity WHERE core_user.id = core_useractivity.user_id AND DATE(created) = DATE(NOW())")
response_data = dictfetchall(cursor)
return render_to_response("siteadmin/active_user_table.tmpl",{'response_data': response_data})
else:
raise Http404
对不起,我现在没有使用django ORM,但我将来会这样做。
答案 0 :(得分:4)
您必须在render_to_response调用中添加 context_instance :
return render_to_response("siteadmin/active_user_table.tmpl",{'response_data': response_data}, context_instance=RequestContext(request))
或者您可以在settings.py中使用 TEMPLATE_CONTEXT_PROCESSORS 元组。将此字符串“django.core.context_processors.request”添加到上下文处理器,每个RequestContext都将包含一个变量请求。
答案 1 :(得分:4)
我自己解决了,但感谢ndpu帮助我至少我相信没有其他问题,但有一些设置问题。在这个问题中I have problems with setting up django-pagination。 Alasdair曾提到将“django.contrib.auth.context_processors.auth”添加到TEMPLATE_CONTEXT_PROCESSORS。在添加它时,我得到了正确的预期值。
答案 2 :(得分:1)
对于那些使用render shortcut的人
并且仍然面临此错误,只需将{'request':request}
添加到上下文变量
context = { ..., 'request':request}
return render(request, 'templatename.html', context)
答案 3 :(得分:0)
我也较早遇到了这个错误。我收到以下错误: 内部服务器错误:/ cancel-email /
Internal Server Error: /cancel-email/
Traceback (most recent call last):
File "/home/kashif/recEnv/lib/python3.6/site-packages/django/template/base.py", line 506, in parse
compile_func = self.tags[command]
KeyError: 'static'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/kashif/recEnv/lib/python3.6/site-packages/django/core/handlers/base.py", line 149, in get_response
response = self.process_exception_by_middleware(e, request)
File "/home/kashif/recEnv/lib/python3.6/site-packages/django/core/handlers/base.py", line 147, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/kashif/recEnv/lib/python3.6/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view
return view_func(*args, **kwargs)
File "/var/www/recruiter-new/recruiter/scheduler.py", line 803, in cancelEmail
return render(request,'scheduler/cancel-email-part.html',{"cancel_email" :EmailDetail})
File "/home/kashif/recEnv/lib/python3.6/site-packages/django/shortcuts.py", line 67, in render
template_name, context, request=request, using=using)
File "/home/kashif/recEnv/lib/python3.6/site-packages/django/template/loader.py", line 96, in render_to_string
template = get_template(template_name, using=using)
File "/home/kashif/recEnv/lib/python3.6/site-packages/django/template/loader.py", line 32, in get_template
return engine.get_template(template_name, dirs)
File "/home/kashif/recEnv/lib/python3.6/site-packages/django/template/backends/django.py", line 40, in get_template
return Template(self.engine.get_template(template_name, dirs), self)
File "/home/kashif/recEnv/lib/python3.6/site-packages/django/template/engine.py", line 190, in get_template
template, origin = self.find_template(template_name, dirs)
File "/home/kashif/recEnv/lib/python3.6/site-packages/django/template/engine.py", line 157, in find_template
name, template_dirs=dirs, skip=skip,
File "/home/kashif/recEnv/lib/python3.6/site-packages/django/template/loaders/base.py", line 46, in get_template
contents, origin, origin.template_name, self.engine,
File "/home/kashif/recEnv/lib/python3.6/site-packages/django/template/base.py", line 189, in __init__
self.nodelist = self.compile_nodelist()
File "/home/kashif/recEnv/lib/python3.6/site-packages/django/template/base.py", line 230, in compile_nodelist
return parser.parse()
File "/home/kashif/recEnv/lib/python3.6/site-packages/django/template/base.py", line 508, in parse
self.invalid_block_tag(token, command, parse_until)
File "/home/kashif/recEnv/lib/python3.6/site-packages/django/template/base.py", line 568, in invalid_block_tag
"or load this tag?" % (token.lineno, command)
django.template.exceptions.TemplateSyntaxError: Invalid block tag on line 74: 'static'. Did you forget to register or load this tag?
[07/Aug/2018 08:43:26] "POST /cancel-email/ HTTP/1.1" 500 20789
我尝试了一些google解决方案,但无法解决,然后终于再次检查我的代码,发现模板文件中存在一个愚蠢的错误。
只需添加:
{% load static %}
位于模板文件的顶部。