gpt4 book ai didi

django - 如何从 django View 中的 url 中删除获取参数

转载 作者:行者123 更新时间:2023-12-02 07:20:49 25 4
gpt4 key购买 nike

我有以下观点:

def copy_group(request):
copy = request.GET.get('copy','')

if copy:
#do my copy process

context = {'view':'copy-view'}
return render(request, 'groups/copy-view.html', context)

使用以下网址调用 mysite.com/groups/?copy=1

问题是,如果我刷新页面,我的进程就会不断地复制。

如何删除 ge 参数,以便 url 在复制后返回:mysite.com/groups/

我尝试将其插入到我的 View 代码中:

request.GET.pop('copy')

但我收到错误:此 QueryDict 实例是不可变的

最佳答案

如果我理解得很好,一旦你完成了复制,你希望页面被重定向,这样就不会再进行复制了。然后这样做:

...
if copy:
the actual copy and then...
return HttpResponseRedirect(redirect_to='/the-path-without-copy-parameter/')
...

然后你可以改进你的代码:

  • 添加copy作为实际路由参数,def copy_group(request,复制=无)
  • 在redirect_to中生成路径而不是对其进行硬编码
  • 脱离主题:如果没有,请添加功能测试:)

顺便说一句,我不知道为什么你使用 Get 参数,而不仅仅是使用不同的 URL?

关于django - 如何从 django View 中的 url 中删除获取参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19106081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com