我目前正在尝试为基于新的django 1.3基于类的视图迁移基于功能的视图。首先,我改变了一个简单的RedirectView,但我无法让它工作,甚至最糟糕的是,我无法理解类视图是如何工作的。该机制很简单,我在索引页中有一个选择字段,用户选择一个选项并点击“开始”。该视图必须获得与该名称相对应的url并在那里重定向。无法使基于类的RedirectView工作
发送POST信号时,django不会返回任何内容,只是终端中的405错误。
修订代码:
的index.html
[...]
<div id="widget">
<h2>{% trans "Spaces list" %}</h2><br />
<form method="post" action="/spaces/go/">{% csrf_token %}
<select name="spaces">
{% for space in spaces %}
<option>{{ space.name }}</option>
{% empty %}
<option>{% trans "No spaces" %}</option>
{% endfor %}
</select>
<input type="submit" value="{% trans 'Go' %}" />
</form>
</div>
[...]
views.py
class GoToSpace(RedirectView):
url = "/spaces/"
def get_redirect_url(self, **kwargs):
self.place = get_object_or_404(Space, name = self.request.POST['spaces'])
return self.place.url
urls.py
from django.conf.urls.defaults import *
from e_cidadania.apps.spaces.views import GoToSpace
urlpatterns = patterns('',
(r'^go/', GoToSpace.as_view()),
)
我什么d错了吗?
你的urls.py怎么样? – 2011-05-13 11:42:19
对不起,忘了:) – 2011-05-13 11:53:30