Somnr丶风 发表于 2020-11-24 23:25:19

django的问题

本帖最后由 Somnr丶风 于 2020-11-24 23:29 编辑

html代码
<a href="{% url "delete" contact.id %}" style="color: red; text-decoration-color: red;">删除</a>
views.py代码
def delete(request,id):
    models.Sql.objects.filter(id=id).delete()
    return HttpResponseRedirect('/home/')
然后。。直接弹出了这样的报错NoReverseMatch at /home/
Reverse for 'delete' with arguments '(19,)' not found. 1 pattern(s) tried: ['delete/]
urls.py代码
path('delete/', views.delete, name='delete'),
好像是第一个request参数没传,home页面都加载不出来就直接报错。我用的版本是3,求解决

疾风怪盗 发表于 2020-11-24 23:41:20

你这个id参数,是怎么传入的?怎么捕获的?

kogawananari 发表于 2020-11-25 09:11:05

django1.10是这样的 参考参考:3没用过 不过应该差不多

def delete(request):
    if request.method == "POST":
      id= request.GET.get("id")
      models.Sql.objects.filter(id=id).delete()
      return HttpResponseRedirect('/home/')


<a href="/delete?id={%contact.id%}" style="color: red; text-decoration-color: red;">删除</a>

如果能发xhr或者formdata最好 届时是id = request.POST.get("id")
而不是通过地址栏传 /delete/id 或者 /delete?id=id

Somnr丶风 发表于 2020-11-25 12:19:57

疾风怪盗 发表于 2020-11-24 23:41
你这个id参数,是怎么传入的?怎么捕获的?

在上面是一个for的遍历,框起来的。然后想通过按钮传当前条目的数据到def里面操作删除功能

疾风怪盗 发表于 2020-11-25 15:03:12

Somnr丶风 发表于 2020-11-25 12:19
在上面是一个for的遍历,框起来的。然后想通过按钮传当前条目的数据到def里面操作删除功能

能可以试试三楼的,应该要么get获取id,要么在地址栏url中正则捕获id吧

西瓜味的苹果 发表于 2020-11-25 17:08:58

path('delete/<pid>/', views.delete, name='delete'),即可成功
页: [1]
查看完整版本: django的问题