3

djangoテンプレートのリクエストオブジェクトにアクセスできないようです。

これが私のsettings.pyファイルの一部です:

import django.conf.global_settings as DEFAULT_SETTINGS
TEMPLATE_CONTEXT_PROCESSOR = DEFAULT_SETTINGS.TEMPLATE_CONTEXT_PROCESSORS + (
    'django.core.context_processors.request',
)

urls.py

urlpatterns = patterns('',
    url(r'^event/create/$', EventCreateView.as_view(), name='create_event'),
    url(r'^event/update/(?P<pk>\d+)/$', EventUpdateView.as_view(), name='update_event'),
    url(r'^event/delete/(?P<pk>\d+)/$', EventDeleteView.as_view(), name='delete_event'),
)

views.py

from django.views.generic import CreateView, UpdateView, DeleteView
from events.models import Event
from events.forms import EventForm

class EventCreateView(CreateView):
    model = Event
    form_class = EventForm

class EventUpdateView(UpdateView):
    model = Event
    form_class = EventForm

class EventDeleteView(DeleteView):
    model = Event

forms.py

from django.forms import ModelForm
from events.models import Event

class EventForm(ModelForm):
    class Meta:
        model = Event

event_form.html(CreateView / UpdateViewの場合)

{% block content %}
    <form action='{{ request.get_full_path }}' method='post'>
        {% csrf_token %}
        <table>
            {{ form.as_table }}
        </table>
        <input type='submit' value='Create event!' />
    </form>
{% endblock %}

上記では、request.sessionは何もしないようです。ドキュメントや同様の問題を調べてみましたが、何も機能していないようです。何か案は?

前もって感謝します。

4

2 に答える 2

3

TEMPLATE_CONTEXT_PROCESSORS の末尾にタイプミスがあり、'S' がありません。おそらく質問だけですか? 設定は次のとおりです。

TEMPLATE_CONTEXT_PROCESSORS = ("django.contrib.auth.context_processors.auth",
 "django.core.context_processors.debug",
 "django.core.context_processors.i18n",
 "django.core.context_processors.media",
 "django.core.context_processors.static",
 "django.core.context_processors.tz",
 "django.contrib.messages.context_processors.messages",
 "django.core.context_processors.request",)

ではありませんTEMPLATE_CONTEXT_PROCESSOR = ...。設定を完全にオーバーライドして、何がアクティブであるかを明確にすることを好みます (たとえば、本番環境ではデバッグを無効にしたい場合があります)。

于 2012-09-13T08:30:26.450 に答える
1

DjangoのSessionフレームワークを使用していますか?そうするとrequest.session、セッションはdictのようなオブジェクトであり、テンプレートエンジンはそれをレンダリングする方法を知らないため、何もしません。

于 2012-09-13T02:32:01.973 に答える