DJANGO开发的留言板, 如何获取上一页的url?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DJANGO开发的留言板, 如何获取上一页的url?相关的知识,希望对你有一定的参考价值。

我在留言板里每一个留言的留言内容页做了个"举报"不良信息的按钮.
当有人认为该信息或者为攻击性的或者为一些公司商业机密,可以点"举报"按钮来报告给管理员.

点"举报"按钮后是有一个form的表页,用来填举报理由的, 它的url是http://127.0.0.1:8000/request/ 当填写完"举报"理由后,点提交, 举报理由和获取的上一页的url会自动存入数据库中叫messageboard_wb的表.

我是用request.META.get('HTTP_REFERER',"/")语句来获取信息内容页(举报理由form表页的上一页)的url. 可是验证后,数据库中存的全是举报理由form表页的url, 即http://127.0.0.1:8000/request/

请大家帮我看一下是哪里的问题.

谢谢了~

def msg_request(request):
if request.method=='POST':
form=MsgRequestForm(request.POST)
if form.is_valid():
wbmessage=Wb(wbtitle=form.cleaned_data['wbtitle'],
wbreason=form.cleaned_data['wbreason'],
wbaddress=request.META.get('HTTP_REFERER',"/")
)
wbmessage.save()

参考技术A 同一个方法,post过来的时候HTTP_REFERER必定是http://127.0.0.1:8000/request/

你可以在用户点击“举报”也就是用get方式访问msg_request方法的时候把HTTP_REFERER放入到hidden类型的表单里面。然后提交到自身

相关代码如下:

def msg_request(request):
if request.method=='POST':
# 这时候处理表单提交过来的obj_url
obj_url = request.POST.get("obj_url", "")
form=MsgRequestForm(request.POST)
if form.is_valid():
wbmessage=Wb(wbtitle=form.cleaned_data['wbtitle'],
wbreason=form.cleaned_data['wbreason'],
wbaddress=obj_url
)
wbmessage.save()
...
# 这时候取到的方为举报的url
obj_url = request.META.get('HTTP_REFERER',"/")
return
"obj_url": obj_url,
...
...


然后把obj_url渲染到表单内。
<input type="hidden" name="obj_url" value="obj_url" />

参考资料:zlovezl.cn

本回答被提问者采纳
参考技术B 分页类里边不是有现成的写法吗。这种多动下脑袋,操作下就能知道。

C# CefSharp 如何获取当前页的URL

webBrowser可以直接用webBrowser.Url获得当前页的URL
CefSharp 该怎么获得当前页的URL
求大神告知

额。。首先要读取您所保存的文件到一个字符串。比如保存的文件是d:\123.txt则string a=File.ReadAllText("d:\\123.txt");(这个要在程序开头引用System.IO这个命名空间的。)然后。将a与richtextbox里的内容相比较,如果相同,直接新建。如果不同。弹出一个对话框。。。 参考技术A cef 绑定类:
WebBrowser_FrameLoadEnd(object sender, FrameLoadEndEventArgs e)
e.url <----就是当前页的地址URL
参考技术B 看书看书

以上是关于DJANGO开发的留言板, 如何获取上一页的url?的主要内容,如果未能解决你的问题,请参考以下文章

使用JS获取上一页的url地址

如何使用 JavaScript 获取上一页 URL? [复制]

python测试开发django-3.url配置

python测试开发django-3.url配置

asp中如何通过url传递参数

C# CefSharp 如何获取当前页的URL