gpt4 book ai didi

python - NoReverseMatch django - 不是有效的 View 函数或模式

转载 作者:行者123 更新时间:2023-11-28 18:21:41 25 4
gpt4 key购买 nike

目前使用 Django 1.11。我得到一个异常(exception)

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

我想使用 get_absolute_url从详细信息页面中的模型转到更新页面。当我取出对 .id 的引用并使用 get_absolute_url 时。我检查了名称“book_details”是否被正确引用。我可以转到页面并正确呈现书籍详细信息。在 Django 的管理控制台中,“现场查看”按钮也无法正确呈现它显示此 localhost:8000/admin/r/13/c7311ecf-eba7-4e9d-8b1a-8ba4e075245a/因此它没有获取库/书本

当前 <a href =" {{ book.id }}/update">Update</a>

想要的 <a href =" {{ book.get_absolute_url }}/update">Update</a>

我在哪里输入错误导致它不起作用?


文件中的设置:

是的,我确实有 UUID 作为主键。

views.py

class BookDetailsView(generic.DetailView):
"""
Generic class-based detail view for a Book.
"""
model = Book

urls.py

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'),

models.py

类书(模型。模型):

def get_absolute_url(self):
"""Returns the URL of the book for details"""
return reverse('book_details', args=[str(self.id)])

最佳答案

尝试将 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'),

关于python - NoReverseMatch django - 不是有效的 View 函数或模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44751584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com