Django.url.exceptions.NoReverseMatch:找不到“收藏夹”的反转

2024-06-01 21:22:51 发布

您现在位置:Python中文网/ 问答频道 /正文

Django 2.0版

在视图.py在

from django.views import generic
from .models import Album


class IndexView(generic.ListView):
    template_name = 'music/index.html'
    context_object_name = 'all_albums'

    def get_queryset(self):
        return Album.objects.all()

class DetailView(generic.DetailView):
    model = Album
    template_name = 'music/details.html'

在详细信息.html在

^{pr2}$

在索引.html在

{% extends 'music/base.html' %}

{% block body %}
    {% if all_albums %}
        <h3>Here are all my Albums:</h3>
        <ul>


            {% for album in all_albums %}


            <li><a href="{% url 'music:details' album.id %}">{{ album.album_title }}</a></li>

            {% endfor %}
        </ul>
    {% else %}
        <h3>You don't have any albums</h3>
    {% endif %}         
{% endblock %}

在基本.html在

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Viberr</title>
    {% load staticfiles %} 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"  />
    <link href='https://fonts.googleapis.com/css?family=Satisfy' rel='stylesheet' type="text/css">
    <link rel="stylesheet" type="text/css" href="{% static 'music/style.css' %}" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

</head>
<body>
    <nav class="navbar navbar-inverse">
                <div class="container-fluid">

                    <!-- Header -->
                    <div class="navbar-header">
                        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#topNavBar">
                            <span class="icon-bar"></span>
                            <span class="icon-bar"></span>
                            <span class="icon-bar"></span>
                        </button>
                        <a class="navbar-brand" href="{% url 'music:index' %}">University of Calicut</a>
                    </div>

                    <!-- Items -->
                    <div class="collaps navbar-collaps" id="topNavBar">
                        <ul class="nav navbar-nav">
                            <li class="active">
                                <a href="{% url 'music:index' %}">
                                    <span class="glyphicon glyphicon-cd" aria-hidden="true"></span>&nbsp;
                                    Albums
                                </a>
                            </li>
                            <li class="">
                                    <a href="{% url 'music:index' %}">
                                        <span class="glyphicon glyphicon-music" aria-hidden="true"></span>&nbsp;
                                        Songs
                                    </a>
                            </li>
                        </ul>

                        <form class="navbar-form navbar-left" role="search" method="GET" action="#">
                            <div>
                                <input type="text" class="form-control" name="q" value="">
                                <button type="submit" class="btn btn-default">Search</button>
                            </div>

                        </form>

                        <ul class="nav navbar-nav navbar-right">
                            <li class="">
                                <a href="#">
                                    <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>&nbsp;
                                    Add Album
                                </a>
                            </li>

                            <li class="">
                                    <a href="#">
                                        <span class="glyphicon glyphicon-off" aria-hidden="true"></span>&nbsp;
                                        Logout
                                    </a>
                            </li>

                        </ul>


                    </div>


                </div>
    </nav>
{% block body %}

{% endblock %}

</body>
</html>

在网址.py(音乐)

from django.conf.urls import url
from .import views
from django.urls import path


app_name = 'music'

urlpatterns = [


    url(r'^$',views.IndexView.as_view(), name='index'),

    url(r'^(?P<pk>[0-9]+)/$',views.DetailView.as_view(), name='details'),

]

在模型.py在

from django.db import models



class Album(models.Model):
    artist = models.CharField(max_length=250)
    album_title=models.CharField(max_length=500)
    genre=models.CharField(max_length=100)
    album_logo=models.CharField(max_length=1000)


    def __str__(self):
        return self.album_title + ' - ' + self.artist

class Song(models.Model):
    album = models.ForeignKey(Album, on_delete=models.CASCADE)
    file_type = models.CharField(max_length=10)
    song_title = models.CharField(max_length=250) 
    is_favorite = models.BooleanField(default=False)


    def __str__(self):
        return self.song_title
  1. 我附上了我的主页和链接页面的图片, 关于这个问题,请帮助我

在上面的代码中,第二页向我抛出一个错误

django.urls.exceptions.NoReverseMatch: Reverse for 'favorite' not found. 'favorite' is not a valid view function or pattern name**

请有人帮我解决我的错误!提前谢谢!在


Tags: namefromdivurlalbumtitlemodelshtml
1条回答
网友
1楼 · 发布于 2024-06-01 21:22:51

我在这里看不到任何名为favorite的url,这也是错误告诉您的:

app_name = 'music'

urlpatterns = [


    url(r'^$',views.IndexView.as_view(), name='index'),

    url(r'^(?P<pk>[0-9]+)/$',views.DetailView.as_view(), name='details'),

]

你可能复制粘贴了详细信息.html或者你忘了在应用程序“音乐”中指定“最爱”的网址

编辑: 正如您澄清的,您无法在您的onw上解决问题: 改变详细信息.html因此:

^{pr2}$

替换为

<form action="#" method="post">

你的网站至少应该加载。在

编辑2:

看完你在评论中链接的youtube视频后: 所有答案都在视频和评论中! 你没有更新详细信息.html. 仔细观察min1:50。 顺便说一句,我的替换表单操作的解决方案也会起作用,但是输出将与您可能期望的稍有不同。。。 我希望这能让你开始;)

相关问题 更多 >