在Django模板中访问RequestContext?
我似乎无法访问django模板中的请求对象 以下是my settings.py文件的一部分:在Django模板中访问RequestContext?,django,django-templates,django-generic-views,django-context,Django,Django Templates,Django Generic Views,Django Context,我似乎无法访问django模板中的请求对象 以下是my settings.py文件的一部分: import django.conf.global_settings as DEFAULT_SETTINGS TEMPLATE_CONTEXT_PROCESSOR = DEFAULT_SETTINGS.TEMPLATE_CONTEXT_PROCESSORS + ( 'django.core.context_processors.request', ) url.py urlpatterns =
import django.conf.global_settings as DEFAULT_SETTINGS
TEMPLATE_CONTEXT_PROCESSOR = DEFAULT_SETTINGS.TEMPLATE_CONTEXT_PROCESSORS + (
'django.core.context_processors.request',
)
url.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'),
)
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%}
{%csrf_令牌%}
{{form.as_table}}
{%endblock%}
上面的request.session似乎什么都没做。我试着查看文档和类似的问题,但似乎没有任何效果。有什么想法吗
提前感谢。您是否使用Django的会话框架?然后是的,
request.session
将不起任何作用,因为会话是一个类似dict的对象,模板引擎不知道如何呈现它。您有一个输入错误,模板上下文处理器末尾缺少一个“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",)
,而不是
模板\u上下文\u处理器=…
。我更喜欢完全覆盖设置,以便清楚哪些是活动的(例如,您可能希望在生产中禁用调试) request.session的类型为dictionary,而不是URL。form action=“”需要是一条路径。是的。我的意思是请求。获取完整路径。很抱歉现在有什么想法吗?我不太了解基于类的视图。但希望这有帮助:这有助于我理解基于类的视图,但我仍然看不出{{request.get_full_path}}没有理由不输出完整路径!不过,谢谢你的帮助。对不起,弄错了。我的意思是请求。获取完整路径。我会编辑的。
{% 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 %}
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",)