Реверс для 'delete_reply' с аргументами '(7, '')' не найден

Я новичок в Django и мне нужна помощь. Я хочу сделать функцию 'delete' для комментариев, но когда я нажимаю на кнопку удаления, я получаю ошибку

Повтор для 'delete_reply' с аргументами '(7, '')' не найден. 1 pattern(s) tried: ['boards/(?P<board_pk>[0-9]+)/reply/(?P<reply_pk>[0-9]+)/delete/\Z']

.

Я догадываюсь, что для reply_pk нет pk, поэтому я попытался передать pk в url. Однако, я не смог получить желаемого ответа. Я потратил много времени, чтобы найти решения в google и здесь, но все замечательные ответы не помогли мне исправить это.

Я прикрепил свой код здесь, пожалуйста, помогите мне

model.py

class ReplyBoard(core_models.TimeStampedModel):
    reply = models.TextField(default="")
    user = models.ForeignKey(user_models.User, related_name = "reply", on_delete = models.CASCADE)
    board = models.ForeignKey("Board", related_name = "reply", on_delete = models.CASCADE, null = True)

view.py

class Board_detail(View):
    def get(self, *args, **kwargs):
        pk = kwargs.get("pk")    
        try:
            form = forms.ReplyForm()
            board = board_models.Board.objects.get(pk=pk)
            
            return render(self.request, "boards/board_detail.html", {"board": board, "form": form})
        except board_models.Board.DoesNotExist:
            raise Http404()




def create_reply(request, board_pk):
    
    form = forms.ReplyForm(request.POST)
    if request.method =="POST":
        board = board_models.Board.objects.get(pk=board_pk)
       
        if form.is_valid():
            reply = form.save()
            reply.board = board
            reply.user = request.user
            reply.save()

            messages.success(request, "creted the comment.")
            return redirect(reverse("boards:board_detail", kwargs={"pk": board.pk}))

@login_required()
def delete_reply(request, board_pk, reply_pk):
    
    try:
        reply = board_models.ReplyBoard.objects.get(pk=reply_pk)
        
        if request.user != reply.user.pk:
            messages.error(request, "cannot delete the comment..")
        else:
            reply.delete()
    except board_models.ReplyBoard.DoesNotExist:
        pass

    
    return redirect(reverse("boards:board_detail", kwargs={"pk": board_pk}))

urls.py

path("<int:board_pk>/reply/<int:reply_pk>/delete/", views.delete_reply, name="delete_reply")

html

<a href="{% url 'boards:delete_reply' board.pk reply.pk %}" class="btn-link">Delete</a>

Вы можете попробовать использовать этот способ

(r'^reply/(?P<board_pk>\d+)(?:/(?P<reply_pk>\d+))?',views.delete_reply, name="delete_reply"),
Вернуться на верх