Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python NoReverseMatch at/basketball/Reverse for';细节';带参数';(';';,)';没有找到。尝试了1个模式:_Python_Django_Django 3.0 - Fatal编程技术网

Python NoReverseMatch at/basketball/Reverse for';细节';带参数';(';';,)';没有找到。尝试了1个模式:

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应用程序,用户可以使用Basketball模型创建Basketball对象,并将其发布到ListView子类的提要中。然后,我希望其他用户能够通过单击该对象的超链接来访问该帖子的详细信息

问题是,当我将详细信息页面的url设置为包含变量“slug”作为对象slug时,它会用url路由“”覆盖我的列表页面,如basketball/url.py中所示,而不是路由到列表页面,它会说找不到包含空slug的页面。这不允许我访问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 %}