我想在request.META字典中添加像request.path这样的新项目。
def sysinfo(request):
values = request.META.items()
values['REQUEST_PATH'] = request.path
return render_to_response('template.html',{'values':values})
...并在模板中输出:
{% for key,value in values %}
[{{ key }}] => {{ value }} <br>
{% endfor %}
我收到了错误:&#39; dict_items&#39;对象不支持项目分配。当我评论值[&#39; REQUEST_PATH&#39;] = request.path 时,它运行正常。我也试过了:
values.update({'REQUEST_PATH',request.path})
...而且我得到了错误:&#39; dict_items&#39;对象没有属性&#39;更新&#39; 我也试图创建一个简单的字典:
other_values = {
"REQUEST_PATH" : request.path,
"HOSTNAME" : request.get_host(),
"FULL PATH" : request.get_full_path(),
"HTTPS" : request.is_secure(),
}
...和我的输出:
[H] => T
[R] => E
[F] => U
[H] => O
但如果我将.items添加到我的值中:
{% for key,value in values.items %}
[{{ key }}] => {{ value }} <br>
{% endfor %}
它工作正常。
[HTTPS] => False
[REQUEST_PATH] => /sysinfo/
[FULL PATH] => /sysinfo/
[HOSTNAME] => django.local
那么,如何将新项目添加到现有的request.META字典?
P.S。我使用的是Python 3和Django 1.8.3
答案 0 :(得分:1)
那是因为request.META.items()
返回的类型为dict_items
(生成器类型)。您需要将其转换为字典以分配另一个密钥。
values = dict(request.META.items())