Реверс для '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"),