1

ZinniaをdjangoWebサイトで実行して、評価できるようにしようとしています。すべての依存関係とすべてを正常にインストールでき、管理ツールを使用していくつかの投稿を作成しましたが、それらへのアクセスでエラーが発生します。

エラー:

KeyError at /weblog/2012/10/12/test-post/

'request'

Request Method:     GET
Request URL:    http://127.0.0.1:8000/weblog/2012/10/12/test-post/
Django Version:     1.4.1
Exception Type:     KeyError
Exception Value:    'request'

Exception Location:     /usr/local/lib/python2.7/site-packages/django/template/context.py in __getitem__, line 54
Python Executable:  /usr/local/bin/python
Python Version:     2.7.3
Python Path:    

['/home/ubuntudev/webtest/twsite',
 '/usr/local/lib/python2.7/site-packages/setuptools-0.6c12dev_r88846-py2.7.egg',
 '/usr/local/lib/python2.7/site-packages/pip-1.2.1-py2.7.egg',
 '/usr/local/lib/python27.zip',
 '/usr/local/lib/python2.7',
 '/usr/local/lib/python2.7/plat-linux2',
 '/usr/local/lib/python2.7/lib-tk',
 '/usr/local/lib/python2.7/lib-old',
 '/usr/local/lib/python2.7/lib-dynload',
 '/usr/local/lib/python2.7/site-packages']

参考までに、これが私のsettings.pyと私のurls.pyです。後者は確かに私が考えることができるすべてのものをいじくり回してきたので、大きな混乱です。

DjangoとZinniaで足を濡らしているところなので、答えを説明してください。前もって感謝します。

4

1 に答える 1

3

Django には、コンテキスト プロセッサと呼ばれる変数をテンプレートに配信するためのシステムがあります(これについては、こちらのブログ記事を参照してください)。これらは、すべてのテンプレートに特定の情報を含める場合に役立ちます。たとえば、ナビゲーション メニューのすべてのリンクをすべてのビュー/テンプレートに追加する必要がない場合は、代わりにテンプレート プロセッサを作成して、これらのリンクをリストとしてすべてのテンプレートに配信できます。

ほとんどのアプリにとって非常に重要なコンテキスト プロセッサがいくつかあります。そのようなものの 1 つはdjango.core.context_processors.request、現在の要求オブジェクトをすべてのテンプレートに渡すものです。これにより、テンプレート内の変数にアクセスできます。これにより{{ request }}、ユーザーが送信したヘッダーなどに関する情報が得られます (その他の情報も同様です)。

とにかく、長い話を短くするためdjango.core.context_processors.requestに、設定で上記を無効にしました:

#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',
#        'zinnia.context_processors.version',
#)

それらのすべてのコメントを外してください。

于 2012-10-30T18:43:43.360 に答える