Я підходжу до підручника у документації Джанго та експериментую з моделями та переглядами. У мене є Person
модель, яка має взаємини багато хто з іншими особами, які я називаю "друзями". Я хотів показати список людей у моїй базі даних та їхніх друзів, тому я спробував виконати наступний шаблон:
{% 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 %}
Джанго говорить мені, що він не може знайти all()
метод У дикому припущенні я намагаюся забрати круглі дужки, залишаючи лінію наступним чином {% for f in p.friends.all %}
. На мій подив, це насправді працює, але я не можу зрозуміти чому.
Чи я насправді називаю метод і отримую запит відновлено, чи відбувається щось зовсім інше?
Відповіді:
0 для відповіді № 1Як зазначає Віктор Кастильо Торрес в aкоментар, у шаблонах Django ви не включаєте дужки у викликах методу. Можна викликати лише методи без параметрів, і вони називаються без дужок.
Додаткові подробиці в документації Django: https://docs.djangoproject.com/en/dev/topics/templates/#variables