Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.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 django-不是有效的视图函数或模式_Python_Django - Fatal编程技术网

Python NoReverseMatch django-不是有效的视图函数或模式

Python NoReverseMatch django-不是有效的视图函数或模式,python,django,Python,Django,目前正在使用Django 1.11。我有一个例外 Reverse for 'book_details' not found. 'book_details' is not a valid view function or pattern name. Request Method: GET Request URL: http://localhost:8000/library/book/c7311ecf-eba7-4e9d-8b1a-8ba4e075245a/ Django Version: 1

目前正在使用Django 1.11。我有一个例外

Reverse for 'book_details' not found. 'book_details' is not a valid view function or pattern name.
Request Method: GET
Request URL:    http://localhost:8000/library/book/c7311ecf-eba7-4e9d-8b1a-8ba4e075245a/
Django Version: 1.11
Exception Type: NoReverseMatch
我想在“详细信息”页面中使用“从我的模型中获取绝对url”的
转到更新页面。当我取出对.id的引用并使用get\u absolute\u url时。我检查了“book_details”的名称是否正确引用。我可以转到页面,让书的细节正确呈现。在Django的管理控制台中,“查看站点”按钮也没有正确呈现,它显示了本地主机:8000/admin/r/13/c7311ecf-eba7-4e9d-8b1a-8ba4e075245a/因此它也没有获取库/书籍

当前

渴望的

我在哪里打错了,这不起作用


文件中的设置:

是的,我有UUID作为主键

views.py中

class BookDetailsView(generic.DetailView):
"""
Generic class-based detail view for a Book.
"""
model = Book
url(r'^book/(?P<pk>[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$', views.BookDetailsView.as_view(), name='book_details'),
url(r'^book/(?P<pk>[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/update/$', views.BookUpdate.as_view(), name='book_update'),
url.py中

class BookDetailsView(generic.DetailView):
"""
Generic class-based detail view for a Book.
"""
model = Book
url(r'^book/(?P<pk>[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$', views.BookDetailsView.as_view(), name='book_details'),
url(r'^book/(?P<pk>[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/update/$', views.BookUpdate.as_view(), name='book_update'),

尝试将
pk
作为关键字参数提供给
reverse
函数

def get_absolute_url(self):
    return reverse('book_details', kwargs={ 'pk': str(self.id) })
此外,url末尾缺少一个尾随斜杠

url(r'^book/(?P<pk>[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/$', views.BookDetailsView.as_view(), name='book_details'),
url(r'^book/(?P[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/$,views.BookDetailsView.as_view(),name='bookdetails',

错误消息清楚地引用了
“试听详细信息”
,但您显示给我们的代码中没有一个包含该字符串。我们不能排除我们看不见的东西。但是,请注意,
,它提供了一种“通过在模板中硬编码url而不违反DRY原则的输出链接的方法”。感谢对
url
标记的建议。在我找到了在名称空间中调用URL的正确方法之后,我用正确的URL生成方法替换了我的
/update
。谢谢你的提示。这有帮助,但没有解决问题。我仔细查看了堆栈,发现回调试图在另一个应用程序中访问url.py。在将名称空间添加到调用后,它工作了
library:book_details
我找到了一些帮助我解决问题的参考资料我忘了提到名称空间,伙计,很高兴你自己解决了这个问题。继续努力。我还缺少的是“名称空间”。解决了这个问题。谢谢