擅长:python、mysql、java
<p>插入新值后,通过禁用defaultdict<em>defaultdict</em>的默认功能,可以避免复制到新的dict:</p>
<pre><code>new_data.default_factory = None
</code></pre>
<p><strong>说明</strong></p>
<p><a href="https://docs.djangoproject.com/en/dev/topics/templates/#variables">template variable resolution algorithm in Django</a>将尝试首先将<code>new_data.items</code>解析为<code>new_data['items']</code>,当使用<em>defaultdict(list)</em>时,它将解析为空列表。</p>
<p>若要禁用对空列表的默认设置并使Django在<code>new_data['items']</code>上失败,然后继续解析尝试,直到调用<code>new_data.items()</code>,可以将<a href="http://docs.python.org/library/collections.html#collections.defaultdict.__missing__">default_factory attribute of <em>defaultdict</em></a>设置为<em>None</em>。</p>