django 利用<a href>做一个删除按钮出现错误

我打算在一个页面上的每一行数据后面都加上一个删除按钮 能够跳转到一个叫studel的视图函数上 删除完再显示当前页面 但是报错了

问题相关代码

views.py

#删除学生信息
def studel(request,t):
    from app1 import models    
    t=request.POST.get('t')
    models.Stu.objects.filter(pk=t).delete()
    return redirect('/stusel')

stusel.html

{%extends 'main.html'%}

{%block main%}
<br/>
<table>
    <tr>
        <td>学生ID</td>
        <td>学生姓名</td>
        <td>班级号</td>
    </tr>
{%for temp in data%}
    <tr>
        <td>{{temp.stu_id}}</td>
        <td>{{temp.stu_name}}</td>  
        <td>{{temp.class_id}}</td>
        <td class='operate' >
            <a href='../studel?t={{temp.stu_id}}' class='operate'>删除</a>
        </td>
    </tr>
{%endfor%}

   

{%endblock%}


urls.py

from django.urls import path,re_path
from . import views
urlpatterns = [
    path('stusel/',views.stusel),
    path('main/',views.main),
    re_path(r'^studel/(?P<t>\d+)/$',views.studel),
]

img

这种情况是哪里出现问题呢

url匹配有问题,建议看一下官方文档有关url部分,你模板里a标签的href有问题,
如果路径和转化器语法不能很好的定义你的 URL 模式,你可以可以使用正则表达式。如果要这样做,请使用 re_path() 而不是 path() 。

在 Python 正则表达式中,命名正则表达式组的语法是 (?Ppattern) ,其中 name 是组名,pattern 是要匹配的模式。

这里是先前 URLconf 的一些例子,现在用正则表达式重写一下:

from django.urls import path, re_path

from . import views

urlpatterns = [
path('articles/2003/', views.special_case_2003),
re_path(r'^articles/(?P[0-9]{4})/$', views.year_archive),
re_path(r'^articles/(?P[0-9]{4})/(?P[0-9]{2})/$', views.month_archive),
re_path(r'^articles/(?P[0-9]{4})/(?P[0-9]{2})/(?P[\w-]+)/$', views.article_detail),
]

这实现了与前面示例大致相同的功能,除了:

将要匹配的 URLs 将稍受限制。比如,10000 年将不在匹配,因为 year 被限制长度为4。
无论正则表达式进行哪种匹配,每个捕获的参数都作为字符串发送到视图。

当从使用 path() 切换到 re_path() (反之亦然),要特别注意,视图参数类型可能发生变化,你可能需要调整你的视图。
使用未命名的正则表达式组¶

还有命名组语法,例如 (?P[0-9]{4}) ,你也可以使用更短的未命名组,例如 ([0-9]{4}) 。

不是特别推荐这个用法,因为它会更容易在匹配的预期含义和视图参数之间引发错误。

在任何情况下,推荐在给定的正则表达式里只使用一个样式。当混杂两种样式时,任何未命名的组都会被忽略,而且只有命名的组才会传递给视图函数。