Questions matching query does not exist...,как испаравить?

    DoesNotExist at /delete/51/
Questions matching query does not exist.

ошибка означает, что ничего подобного не найдено, хотя в бд данная запись имеется. Кроме того эта ошибка появляется не у всех записей.

views

class QuestionDeleteView(LoginRequiredMixin, DeleteView):
    model = Questions
    context_object_name = 'delete_form'
    success_url = reverse_lazy('home')
    success_msg = 'Все ок'
    pk_url_kwarg = "q_pk"
    
    def post(self, request, *args, **kwargs):
        messages.success(self.request, self.success_msg)
        return super().post(request)
    
    def delete(self, request, *args, **kwargs):
        self.object = self.get_object()
        if self.request.user != self.object.author:
            return self.handle_no_permission()
        success_url = self.get_success_url()
        self.object.delete()
        return HttpResponseRedirect(success_url)

urls

path('delete/<int:q_pk>/', QuestionDeleteView.as_view(), name='delete'),

шаблон

<form id="delete_form{{more_q.id}}" action="{% url 'delete' more_q.pk %}" method="post">{% csrf_token %}{{ delete_form }}</form>
      <a href="javascript:void()" onclick="delete_question{{more_q.id}}()">Удалить</a>
      <script>
          function delete_question{{more_q.id}}() {
              if (confirm("Вы уверены")) {
                  document.getElementById('delete_form{{more_q.id}}').submit()
              }
          }
          </script>

Вам не нужно переопределять метод delete, достаточно метод get_queryset. Остальное сделает уже Ваше View самостоятельно

def get_queryset(self):
    user = self.request.user
    return super().get_queryset().filter(author=user)

Метод post тоже не надо, есть SuccessMessageMixin.

Вернуться на верх