Рассмотрим следующий пример:Django класса на основе общий вид перенаправления
urls.py:
urlpatterns = patterns('',
('^test/$', ClassView.as_view()),
)
views.py:
class ClassView(View):
def get(self, request):
return HttpResponse("test")
def post(self, request):
# do something
return redirect(ClassView.get(request)) # What should I do to redirect to a class here without specifying the path?
Я хочу, чтобы перенаправить функции ПОЛУЧИТЬ ClassView в (/ испытание /), но когда я попытаюсь это сделать, я получаю:
NoReverseMatch at /test/
Значит, он явно находит URL-адрес, но говорит, что нет совпадения?
Если в методе 'post' нет ничего обычая, тогда более чистый способ сделать это - объявить' ClassView' с помощью mixin, например 'django.views.generic.edit.FormMixin', а затем добавить объявление члена класса' success_url', 'success_url = reverse_lazy ('test')'. Тогда вы можете полностью опустить объявление 'post'. – nmgeek
@nmgeek да, хорошая точка! ... хотя OP действительно имел комментарий '# do something' в методе' post', который предполагает, что, возможно, произошел какой-то обычай – Anentropic