request
がテンプレートのコンテキストになく、テンプレートがexpecというテンプレートコードを使用しているためそれがそこにあると言いました。このコード(たとえば、カスタムテンプレートタグ)better handleVariableDoesNotExist
また、あなたの意見は、おそらく、明示的にすべての応答にrequest
を返すべきではないはずです。 Djangoがあなたのためにこれを処理させてください。
これを行うには、あなたのTEMPLATE_CONTEXT_PROCESSORS
にジャンゴとrequest template context processorその船を追加します。
TEMPLATE_CONTEXT_PROCESSORS = (
...
'django.core.context_processors.request',
...
)
すでにこのテンプレートのコンテキストプロセッサを使用している場合は、(以下render_to_response
は、最後の引数としてcontext_instance=RequestContext(request)
と呼ばれていることを確認例)docsからのものである:
def some_view(request):
# ...
return render_to_response('my_template.html',
my_data_dictionary,
context_instance=RequestContext(request))
これは、すべてのdictsがにテンプレートコンテキストプロセッサによって返されることを保証しますがテンプレートに渡されます。
render
shortcutを使用すると、Requestcontext
のインスタンスで自動的にテンプレートがレンダリングされます。
Django 1.3で追加された別のオプションはTemplateResponse
で、RequestContext
のインスタンスも使用します。
yourlabs-subscriptionのビューはshortcuts.renderを使用し、コンテキスト内でリクエストオブジェクトを渡しません。これはコンテキストオブジェクトを実行できるように、リクエストオブジェクトをdjango.shortcut.renderに渡します。 django.core.context_processors.requestはコンテキスト内でリクエストを設定するコンテキストプロセッサです。 – jpic