Ответы пользователя по тегу Django
  • Как в DetailView добавить метод post?

    @i_am_duderje
    в первом ответе верно сказали что нужно реализовать метод пост у вашей вьюхи унаследованной от DetailView, где то так:
    class BlogDetailView(DetailView):
     template_name= 'blog-info.html'
     model = Blog
     def post(self, request, *args, **kwargs):
       # тут ваши действия

    Все http методы должны возвращать объект HttpResponse
    Конечно же бывают случаи, когда удобнее обработать POST запросы в DetailView представлении.
    Например, подписаться на блог при его просмотре. Отображение блога осуществить через DetailView, а при клике на кнопку "подписаться" отправлять форму с POST запросом на эту же страницу просмотра блога. И в DetailView вашего блога реализовать метод post(), который добавит текущему юзеру подписку на этот блог.
    и кстати, http_method_names надо использовать когда хотите настроить специфичные методы. Стандартные методы HTTP уже прописаны в http_method_names по умолчанию.
    Но фильтрация делается конечно через GET.
    В чем не прав - поправьте :)
    Ответ написан
    Комментировать