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

NoReverseMatch at /delete/vftsvfyv/ Reverse for 'edit' with arguments '('',)' not found. Как исправить?

Добрый день, делаю удаление статьей на основе CBV. Т.е переписываю с FBV. Как только нажимаю на кнопку 'удалить', выскакивает данная ошибка
NoReverseMatch at /delete/vftsvfyv/
Reverse for 'edit' with arguments '('',)' not found. 1 pattern(s) tried: ['update/(?P<slug>[-a-zA-Z0-9_]+)/\\Z']


views.py
#детально показывает запись
class MoreDetailsQuestion(SuccessMessageMixin, FormMixin, DetailView):
    model = Questions
    template_name = 'blog/more_q.html'
    slug_url_kwarg = 'q_slug'
    context_object_name = 'more_q'
    form_class = AnswerForm
    success_url= reverse_lazy('question')


    def get_success_url(self, **kwargs):
        return reverse_lazy('question', kwargs={'q_slug': self.get_object().slug})

    def get_context_data(self, *, object_list=None, **kwargs):
        context = super().get_context_data(**kwargs)
        context['title'] = context['more_q']
        return context

    def post(self, request, *args, **kwargs):
        form = self.get_form()
        if form.is_valid():
            # print(self.get_object())
            return self.form_valid(form)
        else:
            return self.form_invalid(form)

    def form_valid(self, form):
        self.object = form.save(commit=False)
        self.object.post = self.get_object()
        self.object.author = self.request.user
        self.object.save()
        return super().form_valid(form)
class DeleteQuestionView(DeleteView):
    model = Questions
    template_name = 'blog/more_q.html'

    success_url = reverse_lazy('home')
    success_msg= 'Запись успешно удалена'

    def post(self,request, *args,**kwargs):
        messages.success(self.request, self.success_msg)
        return super().post(request)

urls.py
path('delete/<slug:slug>/',DeleteQuestionView.as_view(),name='delete'),
path('update/<slug:slug>/', UpdateQuestionView.as_view(), name='edit')


шаблон
<a href="{% url 'edit' more_q.slug %}">Редактировать</a>
    <a href="{% url 'delete' more_q.slug %}">Удалить</a>

Вопрос, почему нажимая на кнопку 'удалить' в ошибке показывается путь до страницы редактирования записи?
update/(?P<slug>
Reverse for 'edit'
  • Вопрос задан
  • 446 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@nocab
Перечитай код повнимательнее и все станет понятно...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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