python - NoReverseMatch at /listings/ 未找到“列表”的反向。'listing' 不是有效的视图函数或模式名称
问题描述
所以当我访问该页面时出现此错误,我正在尝试使用分页器,但我不知道我错在哪里,index
函数处理我正在谈论的页面
视图.py
def index(request):
listings = Listing.objects.all()
paginator = Paginator(listings, 3)
page = request.GET.get('page')
paged_listings = paginator.get_page(page)
params = {'listings':paged_listings}
return render(request, 'listings/listings.html', params)
def listing(request, listing_id):
return render(request, 'listings/listing.html')
def search(request):
return render(request, 'listings/search.html')
列表.html
{% extends 'base.html' %}
{% block content %}
{% load humanize %}
<!-- Breadcrumb -->
<section id="bc" class="mt-3">
<div class="container">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="{% url 'index' %}">
<i class="fas fa-home"></i> Home</a>
</li>
<li class="breadcrumb-item active"> Browse Listings</li>
</ol>
</nav>
</div>
</section>
<!-- Listings -->
<section id="listings" class="py-4">
<div class="container">
<div class="row">
{% if listings %}
{% for listing in listings %}
<div class="col-md-6 col-lg-4 mb-4">
<div class="card listing-preview">
<img class="card-img-top" src="{{ listing.photo_main.url }}" alt="">
<div class="card-img-overlay">
<h2>
<span class="badge badge-secondary text-white">${{ listing.price | intcomma}}</span>
</h2>
</div>
<div class="card-body">
<div class="listing-heading text-center">
<h4 class="text-primary">{{ listing.title }}</h4>
<p>
<i class="fas fa-map-marker text-secondary"></i>{{ listing.city }} {{ listing.state }}, {{ listing.zipcode }}</p>
</div>
<hr>
<div class="row py-2 text-secondary">
<div class="col-6">
<i class="fas fa-th-large"></i>Sqfit: {{ listing.sqft }}</div>
<div class="col-6">
<i class="fas fa-car"></i>Garage: {{ listing.garage }}</div>
</div>
<div class="row py-2 text-secondary">
<div class="col-6">
<i class="fas fa-bed"></i>Bedrooms: {{ listing.bedrooms }}</div>
<div class="col-6">
<i class="fas fa-bath"></i>Bathrooms: {{ listing.bathrooms }}</div>
</div>
<hr>
<div class="row py-2 text-secondary">
<div class="col-12">
<i class="fas fa-user"></i>{{ listing.realtor.name }}</div>
</div>
<div class="row text-secondary pb-2">
<div class="col-6">
<i class="fas fa-clock"></i>{{ listing.list_date | timesince }}</div>
</div>
<hr>
<a href="{% url 'listing' listing.id %}" class="btn btn-primary btn-block">More Info</a>
</div>
</div>
</div>
{% endfor %}
{% else %}
<div class="col-md-12">
<p>No Listings Available</p>
</div>
{% endif %}
<!-- Listing 1 -->
</div>
<div class="row">
<div class="col-md-12">
{% if listings.has_other_pages %}
<ul class="pagination">
{% if listings.has_previous %}
<li class="page-item">
<a href="?page={{listings.previous_page_number}}" class="page-link">«</a>
</li>
{% else %}
<li class="page-item disabled">
<a class="page-link">«</a>
</li>
{% endif %}
</ul>
{% endif %}
{% for i in listings.paginator.page_rage %}
{% if listings.number == i %}
<li class="page-item active">
<a class="page-link">{{ i }}</a>
</li>
{% else %}
<li class="page-item">
<a href="?page{{i}}" class="page-link">{{i}}</a>
</li>
{% endif %}
{% endfor %}
</div>
</div>
</div>
</section>
{% endblock %}
网址.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name="listings"),
path('<int:listing_id>', views.listing, name="=listing"),
path('search', views.search, name="=search"),
]
解决方案
您的 urls.py 中有一个错字
尝试使用这个:-
path('listing/<int:listing_id>/', views.listing, name='listing'),
错字在哪里?
你正在使用这个:-
path('<int:listing_id>', views.listing, name="=listing"),
----------------------------------------------^
推荐阅读
- ruby - 具有属性路径一元 * 运算符语法的 Ruby SPARQL 客户端
- php - 使 Doctrine 的 UniqueEntity 约束不区分大小写
- python - 没有 sudo 的 Cron 作业重启
- wordpress - 无法翻译我的 wordpress 网站 - 没有 .pot 文件
- image-processing - 自然语言生成模型中如何控制作者的观点?
- c# - 忽略属性类型时 Automapper 的奇怪行为
- python - 如何将字符串读入字典列表?
- python - 根据“小时”日期时间选择 Pandas 数据框行
- java - jOOQ Codegen 具有用于开发、测试和生产的不同 MySQL 数据库
- date - 日期小于按日期分组的 SSRS 计数记录表达式