今天使用django写代码的时候遇到了一个问题,大概写一个更新功能,再views.py中先写一个update函数,用来跳转到更新的页面,函数如下:
def update(request): textid = request.GET.get("textid") temp = pertext.objects.get(textid=textid) ret = {"content": temp.content} request.session['updateid'] = textid return render(request, "update.html", ret)
然后在更新页面更新完后进行更新并且跳转到首页,更新的函数为updatediscuss函数,函数如下:
def updatediscuss(request): textid = request.session['updateid'] temp = pertext.objects.get(textid=textid) temp.content = request.POST.get("content") temp.save() return HttpResponseRedirect('/blog')
然而在逻辑上没有错的时候,点击更新却出现了错误:
其中pertext是我的数据库中的一个表,在查询的过程中,我发现是因为重复两次进入了update这个函数,而第二次进入函数的时候并没有传参,print debug法:
可是明明是使用form进行传参,而且指向的位置也没有出错,为什么它会错呢?
最后我在寻找的过程中,无意中发现了问题所在,在我的urls.py文件中的函数摆放位置如下:
在将update函数的位置与updatediscuss函数的位置交换后就可以正常运行了。
我思考了以下会不会是因为先找到了update函数就执行update函数了呢?因为url的第一个参数是正则表达式,所以我尝试了一下将写法变一下:
运行成功。
来源:CSDN
作者:Ctks_hqj
链接:https://blog.csdn.net/Ctks_hqj/article/details/103785558