找不到带有参数“'',”的“用户”尝试了1个模式:['帐户/用户/?P <用户ID> [0-9] +/ $']

问题描述

noreverseMatch位于/ bookdetail / 1 /

找不到带有参数'('',)'的'user'的反向字符。尝试了1个模式:['帐户/用户/(?P [0-9] +)/ $']

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...