问题描述
noreverseMatch位于/ bookdetail / 1 /
找不到带有参数'('',)'的'user'的反向字符。尝试了1个模式:['帐户/用户/(?P
Request Method: GET
Request URL: http://127.0.0.1:8000/bookdetail/1/
Django Version: 2.1.5
Exception Type: noreverseMatch
Exception Value:
Reverse for 'user' with arguments '('',)' not found. 1 pattern(s) tried: ['accounts/user/(?P<user_id>[0-9]+)/$']
Exception Location: C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\django\urls\resolvers.py in _reverse_with_prefix,line 622
Python Executable: C:\Users\User\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\python.exe
Python Version: 3.7.8
Python Path:
['C:\\Users\\User\\Desktop\\projects\\books\\src','C:\\Program '
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.7_3.7.2288.0_x64__qbz5n2kfra8p0\\python37.zip','C:\\Program '
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.7_3.7.2288.0_x64__qbz5n2kfra8p0\\DLLs','C:\\Program '
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.7_3.7.2288.0_x64__qbz5n2kfra8p0\\lib','C:\\Program '
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.7_3.7.2288.0_x64__qbz5n2kfra8p0','C:\\Users\\User\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\\LocalCache\\local-packages\\python37\\site-packages','C:\\Users\\User\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\\LocalCache\\local-packages\\python37\\site-packages\\win32','C:\\Users\\User\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\\LocalCache\\local-packages\\python37\\site-packages\\win32\\lib','C:\\Users\\User\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\\LocalCache\\local-packages\\python37\\site-packages\\Pythonwin','C:\\Program '
'Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.7_3.7.2288.0_x64__qbz5n2kfra8p0\\lib\\site-packages']
环境:
请求方法:GET 请求网址:http://127.0.0.1:8000/bookdetail/1/
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/bookdetail/1/
Django Version: 2.1.5
Python Version: 3.7.8
Installed Applications:
['bookexchange','transactions','accounts','django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles']
Installed Middleware:
['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware']
Template error:
In template C:\Users\User\Desktop\projects\books\src\templates\base.html,error at line 0
Reverse for 'user' with arguments '('',)' not found. 1 pattern(s) tried: ['accounts/user/(?P<user_id>[0-9]+)/$']
1 : <!doctype html>
2 : <html lang="en">
3 : <head>
4 : <!-- required Meta tags -->
5 : <Meta charset="utf-8">
6 : <Meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">
7 :
8 : <!-- Bootstrap CSS -->
9 :
10 :
Traceback:
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\django\core\handlers\exception.py" in inner
34. response = get_response(request)
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\django\core\handlers\base.py" in _get_response
126. response = self.process_exception_by_middleware(e,request)
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\django\core\handlers\base.py" in _get_response
124. response = wrapped_callback(request,*callback_args,**callback_kwargs)
File "C:\Users\User\Desktop\projects\books\src\bookexchange\views.py" in book_detail_view
176. return render(request,"bookexchange/book_detail.html",context)
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\django\shortcuts.py" in render
36. content = loader.render_to_string(template_name,context,request,using=using)
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\django\template\loader.py" in render_to_string
62. return template.render(context,request)
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\django\template\backends\django.py" in render
61. return self.template.render(context)
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\django\template\base.py" in render
171. return self._render(context)
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\django\template\base.py" in _render
163. return self.nodelist.render(context)
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\django\template\base.py" in render
937. bit = node.render_annotated(context)
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\django\template\loader_tags.py" in render
150. return compiled_parent._render(context)
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\django\template\base.py" in _render
163. return self.nodelist.render(context)
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\django\template\base.py" in render
937. bit = node.render_annotated(context)
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\django\template\loader_tags.py" in render
62. result = block.nodelist.render(context)
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\django\template\base.py" in render
937. bit = node.render_annotated(context)
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\django\template\defaulttags.py" in render
309. return nodelist.render(context)
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\django\template\base.py" in render
937. bit = node.render_annotated(context)
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\django\template\defaulttags.py" in render
442. url = reverse(view_name,args=args,kwargs=kwargs,current_app=current_app)
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\django\urls\base.py" in reverse
90. return iri_to_uri(resolver._reverse_with_prefix(view,prefix,*args,**kwargs))
File "C:\Users\User\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\python37\site-packages\django\urls\resolvers.py" in _reverse_with_prefix
622. raise noreverseMatch(msg)
Exception Type: noreverseMatch at /bookdetail/1/
Exception Value: Reverse for 'user' with arguments '('',)' not found. 1 pattern(s) tried: ['accounts/user/(?P<user_id>[0-9]+)/$']
尝试在http://127.0.0.1:8000/bookdetail/1/上查看某本书的详细信息时遇到错误。这很奇怪,因为我什至没有在HTML页面中要求用户。如您所见,至此,我只是称这本书title
。我一直在努力解决这一问题,但没有好运。没有人看到任何可能引发此错误的东西吗?
views.py
def book_detail_view(request,book_id):
obj = get_object_or_404(Book,id=book_id)
context = {'object': obj,return render(request,context)
urls.py
app_name = 'bookexchange'
urlpatterns = [
path('',home_view,name='home'),path('list/',item_list_view,name='item-list'),path('detail/<int:item_id>/',item_detail_view,name='item-detail'),path('update/<int:item_id>/',item_update_view,name='item-update'),path('delete/<int:item_id>/',item_delete_view,name='item-delete'),path('bookdetail/<int:book_id>/',book_detail_view,name='book-detail'),...
book_detail.html
<!-- {% extends 'base.html' %} -->
{% block content %}
<p>{{ object.title }}</p>
models.py
class Book(models.Model):
title = models.CharField(max_length=200)
author = models.CharField(max_length=500)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse("bookexchange:book-detail",kwargs={"book_id": self.id})
帐户/views.py
app_name = 'accounts'
urlpatterns = [
path('profile/',profile_view,name='profile'),path('profile-edit/',profile_edit_view,name='profile_edit'),path('user/<int:user_id>/',user_view,name='user'),]
帐户/user.html
{% extends "base.html" %}
{% block content %}
<hr>
<h6>Basic information</h6>
<p>Name: {{ person.user.first_name }} {{ person.user.last_name }}</p>
{% endblock %}
解决方法
我找到了问题的答案!显然django在<!-- -->
模板中不喜欢我的HTML注释,即book_detail
。我改为使用{% comment %} {% endcomment %}
,如本文所指定:
How to put comments in Django templates