Задать вопрос
MalekBV
@MalekBV

Как сделать редирект на эту же страницу Django 2?

В моделях прописано:
class Article(models.Model):
#....
def get_absolute_url(self):
        return reverse('detail', kwargs={'id': self.id})


Далее views

class ArticleCreateView(View):
def post(self, request):
        bound_form = ArticleForm(request.POST)

        if bound_form.is_valid():
            new_article = bound_form.save()
            return redirect(new_article) # ЗДЕСЬ ОШИБКА

        return render(request, 'blogapp/article_create.html', {'form': bound_form})


Ошибка такая:
NoReverseMatch at /create/

Reverse for 'detail' with keyword arguments '{'id': 16}' not found. 1 pattern(s) tried: ['(?P[0-9]+)/$']
  • Вопрос задан
  • 743 просмотра
Подписаться 1 Простой 2 комментария
Решения вопроса 1
tumbler
@tumbler Куратор тега Django
бекенд-разработчик на python
Скорее всего, в паттерне нет именованного параметра id, поэтому NoReverseMatch. Попробуйте передавать в reverse args или задать именованный параметр в паттерне.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@deliro
Вангую, что у тебя в urls.py группа названа криво или name кривой или вообще его нет
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
Strikt Москва
от 100 000 до 180 000 ₽
ITK academy Саратов
от 75 000 ₽
Sim-Ba Pay Санкт-Петербург
от 180 000 ₽