Почему я получаю ошибку отсутствия обратного соответствия в django 3.2?

Я делаю простое приложение для создания списка дел, но при добавлении кнопки удаления я получаю ошибку. Я много чего перепробовал, искал в интернете, но не смог решить проблему, возможно потому что я новичок в django.Так что ваша помощь будет очень важна.

urls.py (из приложения):

from django.conf.urls import url
from django.urls import path
from . import views

urlpatterns=[
path('',views.home,name='home'),
url('delete/<str:id>', views.delete_data,name='deldata'),
]

views.py:

from django.shortcuts import get_object_or_404, render,redirect
from todo.models import value
from django.http import HttpResponseRedirect


# Create your views here.
from .forms import TitleForm
from django.urls import reverse




def home(request):
   values=value.objects.all()    
   form=TitleForm
   if request.method=='POST':
      form=TitleForm(request.POST)
      if form.is_valid():
        form.save()
        return redirect('/')
  else:
      form=TitleForm()
  return render(request,'home.html',{'values':values,'form':form})



 #delete

 def delete_data(request, id ):

    ggwp=value.objects.get(id=id)
    if request.method=="POST":
       ggwp=value.objects.get(id=id)
       ggwp.delete()
       return HttpResponseRedirect(reverse('deldata', kwargs={'id':id}))
    context={'ggwp':ggwp}
    return render(request,'/',context)

models.py:

from django.db import models

# Create your models here.
class value(models.Model):
   task=models.CharField(max_length=200)
   complete=models.BooleanField(default=False)
   created=models.DateTimeField(auto_now_add=True)

   def __str__(self):
       return self.task        

home.html (единственная страница html):

<h3>TO DO LIST</h3>
<form method="POST" action="\">
   {% csrf_token %} 
   {{form.task}} <input type='submit' name='add' value="add" > 
</form>
{% for val in values %}
  {{val}}
  <form action="{% url 'deldata' val.id %}" method="POST" class="in-line">
      {% csrf_token %}
      <input type="submit" value="Delete" >
  </form>



{% endfor %}

traceback:

    raise NoReverseMatch(msg)
 django.urls.exceptions.NoReverseMatch: Reverse for 'deldata' with arguments '(15,)' not 
  found. 1 pattern(s) tried: ['delete/<str:id>']
 [05/Oct/2021 22:37:17] "GET / HTTP/1.1" 500 127858

Это мой первый вопрос, так что извините, если я допустил какие-либо ошибки при написании вопроса.

Вы используете *path(…) [Django-doc] синтаксис с url(…) функцией [Django-doc]. Вы должны работать с path(…) здесь:

urlpatterns=[
    path('',views.home,name='home'),
    # ↓ path, not url
    path('delete/<str:id>/', views.delete_data,name='deldata'),
]

Обычно пути также заканчиваются косой чертой, хотя это не обязательно, но часто встречается.


Примечание: Начиная с версии , url(…) [Django-doc] является deprecated в пользу re_path(…) [Django-doc]. Кроме того, был введен новый синтаксис для путей с конвертерами путей: вы используете path(…) [Django-doc] для этого.

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