@Shua_inc

Пишу велосипед на Django (бложек). Как правильно сделать редирект на созданный пост?

Я вот такого нагородил:
class PostCreateView(LoginRequiredMixin, generic.CreateView):
    model = Post
    template_name = 'blog/post_form.html'
    form_class = PostCreationForm

    def form_valid(self, form):
        post = form.save(commit=False)
        post.author = self.request.user
        post.save()
        return HttpResponseRedirect(self.get_success_url(post.id))

    def get_success_url(self, id):
        return reverse('post-detail',args=(id,))

Но че-то мне не нравится, чувствую что можно красивее :) Можно как-то обойтись без передачи id в get_success_url() ?
  • Вопрос задан
  • 202 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
from django.shortcuts import redirect

...
return redirect(post)

А в модели определить метод get_absolute_url
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы