Opened 3 years ago

Last modified 3 years ago

#32850 closed Cleanup/optimization

Sitemap.items() gets called several times: Fix or document? — at Version 6

Reported by: Thomas Güttler Owned by: nobody
Component: Documentation Version: 3.2
Severity: Normal Keywords:
Cc: Triage Stage: Ready for checkin
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by Thomas Güttler)

The Sitemap.items() method might get called several times (if you generate several pages in batch)

This is confusing and might waste computation resources.

    def _urls(self, page, protocol, domain):
        urls = []
        latest_lastmod = None
        all_items_lastmod = True  # track if all items have a lastmod
        paginator_page = self.paginator.page(page)
        for item in paginator_page.object_list:
            loc = f'{protocol}://{domain}{self._location(item)}'
            ....
    @property
    def paginator(self):
        return paginator.Paginator(self._items(), self.limit)

I see two options now:

Option1: Document this behaviour.

Option2: make paginator a cached_property.

Change History (6)

comment:1 by Thomas Güttler, 3 years ago

Description: modified (diff)

comment:2 by Thomas Güttler, 3 years ago

Description: modified (diff)

comment:3 by Thomas Güttler, 3 years ago

Description: modified (diff)

comment:4 by Thomas Güttler, 3 years ago

Description: modified (diff)

comment:5 by Thomas Güttler, 3 years ago

Description: modified (diff)

comment:6 by Thomas Güttler, 3 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.
Back to Top