Opened 3 years ago
Closed 3 years ago
#33144 closed Bug (invalid)
get_elided_page_range() method doesn't work properly.
Reported by: | axinterop | Owned by: | nobody |
---|---|---|---|
Component: | Generic views | Version: | 3.2 |
Severity: | Normal | Keywords: | paginator, pagination, get_elided_page_range, ListView |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
I found that the page number is not passed to the get_elided_page_range method and it uses the default value (1) all the time.
Having, for example, 34 pages, get_elided_page_range will always return 1 2 3 4 … 33 34 range regardless of the current page number.
views.py
class TopicListView(ListView): model = Topic context_object_name = 'topics' template_name = 'topics.html' paginate_by = 3 def get_context_data(self, *, object_list=None, **kwargs): context = super().get_context_data(**kwargs) context['board'] = self.board return context def get_queryset(self): self.board = get_object_or_404(Board, id=self.kwargs.get('board_id')) queryset = self.board.topics.order_by('last_updated').\ annotate(replies=Count('posts') - 1) return queryset
topics.html
... {% for page_num in paginator.get_elided_page_range %} {{ page_num }} {% endfor %} ...
Change History (1)
comment:1 by , 3 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
Summary: | 'get_elided_page_range' method doesn't work properly → get_elided_page_range() method doesn't work properly. |
Note:
See TracTickets
for help on using tickets.
Thanks for the report, however it's an issue in your code not in Django itself.
get_elided_page_range()
is a method not an attribute, and shouldn't be called directly on templates. You can check how it's used in admin, see pagination(). If you're having trouble understanding how Django works, see TicketClosingReasons/UseSupportChannels for ways to get help