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]+)/$']
  • Вопрос задан
  • 737 просмотров
Решения вопроса 1
tumbler
@tumbler Куратор тега Django
бекенд-разработчик на python
Скорее всего, в паттерне нет именованного параметра id, поэтому NoReverseMatch. Попробуйте передавать в reverse args или задать именованный параметр в паттерне.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@deliro
Вангую, что у тебя в urls.py группа названа криво или name кривой или вообще его нет
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы