欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

TypeError: got an unexpected keyword argument ‘id‘

程序员文章站 2022-06-13 10:03:14
...

我一开始使用的是正则表达式传参

    url('^delete_books/(?P<id>.*?)/$', views.delete_books),

显然这样写是没有问题的,在views中接收这个参数

def delete_books(request,book_id):
    b = BookInfo.objects.get(id=int(book_id))
    b.delete()
    return redirect('/total_books/')

这样写就会报错误,因为参数传不过来,也无法执行,直接报错


然后试了一下*args和**kwargs,前面一个我试了返回的是一个元组接收不到值。而**kwargs返回来了一个字典正好接收到!


def delete_books(request, *args, **kwargs):
    b = BookInfo.objects.get(id=int(kwargs['id']))
    b.delete()
    return redirect('/total_books/')

此时就可以正常接收到参数了

相关标签: python基础