【发布时间】:2012-09-06 02:10:00
【问题描述】:
我似乎无法访问我的 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 似乎什么也没做。我试过查看文档和类似的问题,但似乎没有任何效果。有什么想法吗?
提前致谢。
【问题讨论】:
-
request.session 是字典类型,而不是 URL。 form action="" 必须是路径。
-
是的。我的意思是 request.get_full_path。对不起。现在有什么想法吗?
-
我对基于类的视图了解不多。但希望这会有所帮助:gregaker.net/2012/apr/19/how-do-django-class-based-views-work
-
这有助于我理解基于类的视图,但我仍然看不出为什么 {{ request.get_full_path }} 不会输出完整路径!不过,感谢您的帮助。
标签: django django-templates django-generic-views django-context