Django中的keyError.在模板渲染期间

Joh*_*Doe 5 python django django-pagination

对不起,如果它是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>
Run Code Online (Sandbox Code Playgroud)

详细的追溯粘贴在这里http://dpaste.com/919526/

视图代码如下

views.py

@csrf_exempt
Run Code Online (Sandbox Code Playgroud)

def active_user_table(request,b):if request.method!="GET":raise 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
Run Code Online (Sandbox Code Playgroud)

对不起,我现在没有使用django ORM,但我将来会这样做.

Joh*_*Doe 4

我自己解决了这个问题,但感谢 ndpu 的帮助,至少我确信除了一些设置问题之外没有其他问题。在这个问题中,我在设置 django-pagination 时遇到问题。Alasdair 提到将“django.contrib.auth.context_processors.auth”添加到 TEMPLATE_CONTEXT_PROCESSORS 中。只需添加它,我就得到了正确的预期值。