2014-10-08 57 views
0

我正在关注Django文档中的教程,并试验模型和视图。我有一个Person模型,它与其他人称为“朋友”,有多对多的关系。我想表明我的数据库,和他们的朋友的人的名单,所以我想下面的模板:为什么我可以在没有括号的情况下在我的ManyRelatedManager上调用“all”方法? (Django)

{% if people %} 
    <ul> 
    {% for p in people %} 
     <li> 
      {{ p.name }} 
      <ul> 
      {% for f in p.friends.all() %} 
       <li> 
        {{ f.name }} 
       </li> 
      {% endfor %} 
      </ul> 
     </li> 
    {% endfor %} 
    </ul> 
{% else %} 
    <p>There are no people.</p> 
{% endif %} 

Django的告诉我,它无法找到all()方法。狂野猜测我尝试拿走括号,留下如下行{% for f in p.friends.all %}。令我惊讶的是,这确实有效,但我不明白为什么。

我是否真的调用了方法并将查询设置回来,或者是完全不同的事情?

+1

看看这个:http://stackoverflow.com/questions/2115869/calling-python-function-in-django-template/2115936#2115936这HTTPS ://docs.djangoproject.com/en/dev/topics/templates/#variables – 2014-10-08 02:52:24

+0

啊,这清除了它。谢谢。 – zxz 2014-10-08 02:58:58

+0

不客气! – 2014-10-08 03:01:08

回答

相关问题