我就是个菜 2022-02-23 18:59 采纳率: 87.5%
浏览 22
已结题

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

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

  • 写回答

1条回答 默认 最新

  • ~白+黑 Python领域新星创作者 2022-02-24 09:16
    关注

    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}) 。

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月6日
  • 已采纳回答 3月29日
  • 创建了问题 2月23日

悬赏问题

  • ¥15 netty整合springboot之后自动重连失效
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击