python - 如何从 Django 中的请求 QueryDict 中删除 key ?

标签 python django

这是我的 Django View 之一:

def index(request):

    message = request.GET.get('message', '')

    context = RequestContext(request, {
    'message': message
    })

    return render(request, 'bets/index.html', context)

我的目标是在模板中只显示一次消息,而不是在页面重新加载时显示它。我试过这个:

request.GET['message'] = ''

但出现错误“This QueryDict instance is immutable”。如何从 QueryDict 中删除键?

最佳答案

即使您可以从 querydict 中删除该值,也无济于事,因为它基于您用来请求该 View 的 URL,因此当您刷新时,您将再次使用相同的 URL与现有参数。

而不是在 GET 参数中传递消息值,将其放入 session 中,并在索引 View 中使用 request.session.pop('message')

更好的是,使用内置的 messages framework它为您完成了所有这些工作。

关于python - 如何从 Django 中的请求 QueryDict 中删除 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29492894/

相关文章:

django - 使用 django-import-export 在 django 迁移中的外键

python - Django 的 GeoJSON 序列化器没有序列化所有字段?

python - 在 Python 中对 Corba 进行单元测试

python - 当应用 jwt auth 包装器时,Flask-cors 包装器不起作用。

python - django,fastcgi : how to manage a long running process?

django - 在 Heroku 上部署带有 Django Rest Framework 后端的 Angular 4 前端

django - 我可以在 ManyToMany 字段上使用 unique_together 吗?

reactjs - React 未命中 kubernetes 集群上的 django api

python - 函数内部的函数在 django 中不起作用

python - 清理数据 : How to iterate through a list find if item contains a string, 空白或空白并在 Python 中删除该项目