Я следовал документации django и добавил нумерацию страниц, и все выглядит хорошо. Вот как это выглядит, как выглядит нумерация страниц. Я думаю, что views.py, urls.py , и шаблон в порядке, и проблема в models.py, я точно не знаю. Когда я нажимаю на любой номер страницы в пагинации, который перенаправляет меня на страницу с URL «example? Page =», и проблема возникает здесь, потому что мой сайт не работает с «? Page =». Вот ошибка, которую я получил:
IntegrityError at /new_search
NOT NULL constraint failed: global_store_app_search.search
Request Method: GET Request URL: http://127.0.0.1:8000/new_search?page=2 Django Version: 2.1.2 Exception Type: IntegrityError Exception Value:
NOT NULL constraint failed: global_store_app_search.search
Exception Location: /home/ubuntu/.local/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py in execute, line 296 Python Executable: /usr/bin/python3 Python Version: 3.6.9 Python Path:
['/home/ubuntu/Desktop/TunisiaGlobalStoreDjango/global_store_project', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/home/ubuntu/.local/lib/python3.6/site-packages', '/usr/local/lib/python3.6/dist-packages', '/usr/lib/python3/dist-packages']
Server time: Thu, 2 Apr 2020 18:08:59 +0000
Вот шаблон:
<div class="pagination">
{% if posts.has_previous %}
<a class="btn btn-outline-info mb-4" href="?page=1">First</a>
<a class="btn btn-outline-info mb-4" href="?page={{ posts.previous_page_number }}">Previous</a>
{% endif %}
{% for num in posts.paginator.page_range %}
{% if posts.number == num %}
<a class="btn btn-outline-info mb-4" href="?page={{ num }}">{{ num }}</a>
{% elif num > posts.number|add:"-3" and num < posts.number|add:"3" %}
<a class="btn btn-outline-info mb-4" href="?page={{ num }}">{{ num }} </a>
{% endif %}
{% endfor %}
{% if posts.has_next %}
<a class="btn btn-outline-info mb-4" href="?page={{ posts.next_page_number }}">Next</a>
<a class="btn btn-outline-info mb-4" href="?page={{ posts.paginator.num_pages }}">Last</a>
{% endif%}
{% endif %}
</div>