【发布时间】:2020-10-15 09:47:04
【问题描述】:
我目前面临两个问题
问题 1:
在 Django 中开发的应用程序。我可以毫无问题地导航到第 1 页或第 2 页,但是 如果假设我在第 1 页上并单击相同的第 1 页链接 URL 将是( 127.0.0.1:8000/query/="?page=1" )我收到该页面的错误
Page not found (404)
Request Method: GET
Request URL: http://127.0.0.1:8000/query/%3D%22?page=1%22
on the console :
Not Found: /query/="
[14/Oct/2020 17:46:10] "GET /query/=%22?page=1%22 HTTP/1.1" 404 3710
观看次数
@login_required(login_url='login')
def query(request):
print("ddd",request)
tasks = Task.objects.all()
form = TaskForm()
if request.method =='POST':
form=TaskForm(request.POST)
if form.is_valid():
form.save()
return redirect('/')
products = Task.objects.all()
paginator = Paginator(products, 5)
page_number = request.GET.get('page', 1)
page = paginator.get_page(page_number)
NoOfProducts = Task.objects.count()
try:
xyz = paginator.page(page)
except PageNotAnInteger:
xyz = paginator.page(1)
except EmptyPage:
xyz = paginator.page(paginator.num_pages)
print("Price1", page_number)
print("Price",NoOfProducts)
if page.has_next():
next_url = f'?page={page.next_page_number()}'
else:
next_url = ''
if page.has_previous():
prev_url = f'?page={page.previous_page_number()}'
else:
prev_url = ''
print("next", next_url)
print("prev", prev_url)
context = {'tasks':products,'form':form,'Totalprice':Task.get_price_total,'page': page, 'next_page_url': next_url, 'prev_page_url': prev_url,
'NoOfProducts': NoOfProducts}
return render(request,'tasks/cart.html',context)
网址
urlpatterns = [
#path('', views.index, name="list"),
path('', views.query, name="query"),
path('create/', views.createTask, name="create"),
path('update_task/<str:pk>/', views.updateTask, name="update_task"),
path('register/', views.registerPage,name="register"),
path('login/', views.loginPage,name="login"),
# path('login/', views.loginPage,name="login"),
path('logout/', views.logoutUser,name="logout"),
path('delete/<str:pk>/', views.deleteTask, name="delete"),
path('query/', views.query, name="query"),
path('products/', views.display, name="products"),
path('dates/', views.showresults, name="search"),
]
第二期:
Paginator 方向在我已经指定“justify-content-end”的页面上不起作用,但它仍然显示在页面左侧如何更正?
Main.html
<!DOCTYPE html>
{% load static %}
<style>
.hello-msg{
font-size: 18px;
color:#fff;
margin-right: 20px;
}
</style>
<html>
<head>
<title>Ecom</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1" />
<link rel="stylesheet" type="text/css" href="{% static 'css/main.css' %}">
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href="{% url 'query' %}">Home</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="{% url 'create' %}">Create <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item active">
<a class="nav-link" href="{% url 'search' %}">Search <span class="sr-only">(current)</span></a>
</li>
</ul>
</div>
<span class ="hello-msg"> Hello, {{request.user}} </span>
<span><a class ="hello-msg" href="{% url 'logout' %}"> Logout</a> </span>
</nav>
<div class="container">
{% block content %}
{% endblock content %}
<nav aria-label="Page Navigation Example">
{%if page.paginator %}
<ul class="pagination justify-content-end">
{%if NoOfProducts > 6 %}
<li class="page-item {% if not prev_page_url %} disabled {% endif %} ">
<a class="page-link " href="{{ prev_page_url }}" tabindex="-1" aria-disabled="true">Previous</a>
</li>
{% for n in page.paginator.page_range %}
{% if page.number == n %}
<li class="page-item active" aria-current="page">
<a class="page-link" href=="?page={{n}}">{{n}}<span class="sr-only">(current)</span></a>
</li>
{% elif n > page.number|add:-3 and n < page.number|add:3 %}
<li class="page_item">
<a class="page-link" href ="?page={{n}}">{{n}}</a>
</li>
{% endif %}
{% endfor %}
<li class="page-item {% if not next_page_url %} disabled {% endif %} ">
<a class="page-link" href="{{next_page_url}}">Next</a>
</li>
{% endif %}
</ul>
{% endif %}
</nav>
</div>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
<script type="text/javascript" src="{% static 'js/cart.js' %}"></script>
</body>
</html>
我正在传递“但仍然在左侧页面上加载分页。有人可以帮助我。
【问题讨论】:
-
我尝试使用它,但如果我仔细查看我的代码,则无法理解代码,{{ ( {{n}}(current) ) }} 这将被转换为(127.0.0.1:8000/query/="?page=1")我在这一行出现错误但它被定义仍然无法理解我缺少什么
标签: django pagination