Python NoReverseMatch at/basketball/Reverse for';细节';带参数';(';';,)';没有找到。尝试了1个模式:
我有一个Django应用程序,用户可以使用Basketball模型创建Basketball对象,并将其发布到ListView子类的提要中。然后,我希望其他用户能够通过单击该对象的超链接来访问该帖子的详细信息 问题是,当我将详细信息页面的url设置为包含变量“slug”作为对象slug时,它会用url路由“”覆盖我的列表页面,如basketball/url.py中所示,而不是路由到列表页面,它会说找不到包含空slug的页面。这不允许我访问url“”Python NoReverseMatch at/basketball/Reverse for';细节';带参数';(';';,)';没有找到。尝试了1个模式:,python,django,django-3.0,Python,Django,Django 3.0,我有一个Django应用程序,用户可以使用Basketball模型创建Basketball对象,并将其发布到ListView子类的提要中。然后,我希望其他用户能够通过单击该对象的超链接来访问该帖子的详细信息 问题是,当我将详细信息页面的url设置为包含变量“slug”作为对象slug时,它会用url路由“”覆盖我的列表页面,如basketball/url.py中所示,而不是路由到列表页面,它会说找不到包含空slug的页面。这不允许我访问url“” 我在Django下工作,按顺序搜索URL路由,因
我在Django下工作,按顺序搜索URL路由,因为空白路径是在包含SLUG的路由之前应该看到的第一条路径。 请注意,直接导致问题的代码段位于basketball_list.html中:
<a href= "{% url 'basketball:detail' basketball.slug %}">
{% extends 'base.html' %}
{% block title %}Basketball List{% endblock title %}
{% block content %}
<h2>Basketball List</h2>
<ul>
{% for x in basketball_list %}
<li><a href= "{% url 'basketball:detail' basketball.slug %}">{{ x }}</a></li>
{% endfor %}
</ul>
<hr/>
<p>Post Own Info?</p>
<p>
<a class="btn btn-primary"
href="{% url 'basketball:add' %}" role="button">
Add Post
</a>
</p>
{% endblock content %}
views.py:
from django.shortcuts import render
from django.views.generic import ListView, CreateView, DetailView
from django.contrib.auth.mixins import LoginRequiredMixin
from .models import Basketball
class BasketballListView(LoginRequiredMixin, ListView):
model = Basketball
class BasketballDetailView(DetailView):
model = Basketball
class BasketballCreateView(LoginRequiredMixin, CreateView):
model = Basketball
fields = [
'player',
]
def form_valid(self, form):
form.instance.creator =self.request.user
return super().form_valid(form)
URL.py:
# wtg/basketball/urls.py
from django.urls import path
from . import views
app_name = "basketball"
urlpatterns = [
path(
route='',
view=views.BasketballListView.as_view(),
name='list',
),
path(
route='add/',
view=views.BasketballCreateView.as_view(),
name='add',
),
path(
route='<slug:slug>/',
view=views.BasketballDetailView.as_view(),
name='detail'
),
]
您的url与列表循环变量(x)不匹配。这个
{u列表%中x的%
{%endfor%}
应该是
{% for x in basketball_list %}
<li><a href= "{% url 'basketball:detail' x.slug %}">{{ x }}</a></li>
{% endfor %}
{u列表%中x的%
{%endfor%}
很抱歉,我没有复制该部分并试图将其打印出来。。我犯了错误,并在问题中解决了它
urlpatterns = [
path(
"",
TemplateView.as_view(template_name="pages/home.html"),
name="home",
),
path(
"about/",
TemplateView.as_view(template_name="pages/about.html"),
name="about",
),
# Django Admin, use {% url 'admin:index' %}
path(settings.ADMIN_URL, admin.site.urls),
# User management
path(
"users/",
include("wtg.users.urls", namespace="users"),
),
path("accounts/", include("allauth.urls")),
# Your stuff: custom urls includes go here
path(
'basketball/',
include('wtg.basketball.urls', namespace='basketball')
),
path(
"^activity/",
include("actstream.urls")
),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
{% for x in basketball_list %}
<li><a href= "{% url 'basketball:detail' basketball.slug %}">{{ x }}</a></li>
{% endfor %}
{% for x in basketball_list %}
<li><a href= "{% url 'basketball:detail' x.slug %}">{{ x }}</a></li>
{% endfor %}