5

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/

ビューコードは次のとおりです

views.py

@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を使用していませんが、将来使用する予定です。

4

4 に答える 4

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に変数requestが含まれます。

于 2013-02-11T10:10:00.037 に答える
4

私はそれを自分で解決しましたが、少なくとも私を助けてくれたndpuのおかげで、他の問題はなく、いくつかの設定の問題があると確信しました。この質問では、django-paginationの設定に問題があります。Alasdairは、TEMPLATE_CONTEXT_PROCESSORSに「django.contrib.auth.context_processors.auth」を追加することに言及していました。それを追加するだけで、正しい期待値が得られます。

于 2013-02-11T11:18:26.253 に答える
1

レンダリングショートカットを使用していて 、まだこのエラーが発生{'request': request }している場合は、コンテキスト変数に追加するだけです。

context = { ..., 'request':request}
return render(request, 'templatename.html', context)
于 2015-02-21T05:13:05.053 に答える
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

私はいくつかのグーグルソリューションを試しましたが、解決できませんでした。そして最後にもう一度私のコードをチェックし、テンプレートファイルにばかげた間違いを見つけました。

追加するだけです:

{% load static %}

テンプレートファイルの上に。

于 2018-08-07T09:00:13.540 に答える