这是我的 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/