Вот мой URL:
url(r'^test/$|test/(\d+)', views.test_page)
Таким образом, при запущенном сервере запуска django я могу ввести 127.0.0.1:8000/test/ или тот же URL, за которым следует номер страницы.
Вот упрощенная версия моего взгляда:
def test_page(request, pagenumber):
paginator = Paginator(Test.objects.all(), 5)
page = 1
if pagenumber:
page = pagenumber
posts = paginator.page(page)
Это работает, но довольно неэффективно.Поэтому я изменил его на:
def test_page(request, page=1):
paginator = Paginator(Test.objects.all(), 5)
posts = paginator.page(page)
Что лучше, работает, когда я указываю номер страницы в URL, но когда я просто ввожу 127.0.0.1:8000/test/, это не так.Я получил:
Exception Type: TypeError
Exception Value: int() argument must be a string or a number,
not 'NoneType'
Exception Location: /usr/lib/python2.7/site-packages/django/core/
paginator.py in validate_number, line 23
почему страница атрибута не принимает значение по умолчанию 1, когда я не указываю номер страницы?