В настоящее время я пытаюсь перенести свои представления на основе функций для новых представлений на основе классов django 1.3.Для начала я изменил простой RedirectView, который у меня был, но я не могу заставить его работать, даже хуже, я не могу понять, как работает представление класса.Механизм прост, у меня есть поле выбора на странице индекса, пользователь выбирает опцию и нажимает кнопку «перейти».Представление должно получить URL, соответствующий этому имени, и перенаправить его туда.
При отправке сигнала 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()),
)
Что яя делаю не так?