Made the example more consistent.
@@ -471,16 +471,16 @@ https://web.archive.org/web/20110718035220/http://diveintomark.org/archives/2004
{% for friend in person.friends %}
Here, ``friends()`` will be called twice. Since the instance ``person`` in
- the view and the template are the same, ``@cached_property`` can avoid
- that::
+ the view and the template are the same, decorating the ``friends()`` method
+ with ``@cached_property`` can avoid that::
from django.utils.functional import cached_property
+ class Person(models.Model):
+
@cached_property
def friends(self):
- # expensive computation
...
- return friends
Note that as the method is now a property, in Python code it will need to
be invoked appropriately::
