<p>来自<a href="https://docs.djangoproject.com/en/1.10/ref/templates/api/#variables-and-lookups" rel="nofollow">documentation</a></p>
<blockquote>
<p>If any part of the variable is callable, the template system will try calling it.</p>
</blockquote>
<p>以及</p>
<blockquote>
<p>Occasionally you may want to turn off this feature for other reasons, and tell the template system to leave a variable uncalled no matter what. To do so, set a do_not_call_in_templates attribute on the callable with the value True. </p>
</blockquote>
<p>从<a href="https://www.crummy.com/software/BeautifulSoup/bs4/doc/#calling-a-tag-is-like-calling-find-all" rel="nofollow">BeautifulSoup documentation</a></p>
<blockquote>
<p>Calling a tag is like calling find_all()</p>
</blockquote>
<p>例如,<code>tagX('a')</code>返回在这个<code>tagX</code>中找到的所有<code><a></code>标记的列表。在</p>
<p>模板中的<code>item</code>引用了<code>bs4.element.Tag</code>的实例,该实例是可调用的。因此Django用零参数调用<code>item</code>变量,这意味着它将返回<code>item</code>内所有元素的列表,这是无的,因为它只包含文本。因此,空白列表。在</p>
<p>因此,要么在将上下文传递给模板之前解析它</p>
<pre><code>list1 = [item.title.text for item in soup.find_all('item')]
</code></pre>
<p>或者,如果出于某种原因想传递实例,可以将<code>do_not_call_in_templates</code>属性设置为</p>
^{pr2}$