首页 > 解决方案 > Django 3 错误 - NoReverseMatch at /; 未找到任何参数的“car_detail”反向。尝试了 1 种模式:['cars/(?P[0-9]+)$']

问题描述

我目前正在从一本电子书中学习关于 Django 的教程。尽管做了书中写的事情,但我一直收到这个错误。也许,我有一个疏忽,一定错过了什么。一个好心的人可以帮助我检查我的代码并告诉我我一定做错了什么吗?我在下面附上了我的代码片段。任何帮助将不胜感激。谢谢

NoReverseMatch 在 /

Reverse for 'car_detail' with no arguments not found. 1 pattern(s) tried: ['cars/(?P<id>[0-9]+)$']
Request Method: GET
Request URL:    http://127.0.0.1:8000/
Django Version: 3.0.7
Exception Type: NoReverseMatch
Exception Value:    
Reverse for 'car_detail' with no arguments not found. 1 pattern(s) tried: ['cars/(?P<id>[0-9]+)$']
Exception Location: C:\Python37\lib\site-packages\django\urls\resolvers.py in _reverse_with_prefix, line 677
Python Executable:  C:\Python37\python.exe
Python Version: 3.7.7
Python Path:    
['D:\\Django_Tests\\CarZone_Project',
 'C:\\Python37\\python37.zip',
 'C:\\Python37\\DLLs',
 'C:\\Python37\\lib',
 'C:\\Python37',
 'C:\\Python37\\lib\\site-packages']
Server time:    Wed, 16 Dec 2020 14:46:01 +0000
Error during template rendering
In template D:\Django_Tests\CarZone_Project\templates\base.html, error at line 0

Reverse for 'car_detail' with no arguments not found. 1 pattern(s) tried: ['cars/(?P<id>[0-9]+)$']
1   {% load static %}
2   
3   <!DOCTYPE html>
4   <html>
5   
6   <head>
7       <title></title>
8       <meta name="viewport" content="width=device-width, initial-scale=1.0">
9       <meta charset="utf-8">
10  

Traceback 切换到复制和粘贴视图

C:\Python37\lib\site-packages\django\core\handlers\exception.py in inner
            response = get_response(request) …
▶ Local vars
C:\Python37\lib\site-packages\django\core\handlers\base.py in _get_response
                response = self.process_exception_by_middleware(e, request) …
▶ Local vars
C:\Python37\lib\site-packages\django\core\handlers\base.py in _get_response
                response = wrapped_callback(request, *callback_args, **callback_kwargs) …
▶ Local vars
D:\Django_Tests\CarZone_Project\pages\views.py in home
    return render(request, 'pages/home.html', all_data) …
▶ Local vars
C:\Python37\lib\site-packages\django\shortcuts.py in render
    content = loader.render_to_string(template_name, context, request, using=using) …
▶ Local vars
C:\Python37\lib\site-packages\django\template\loader.py in render_to_string
    return template.render(context, request) …
▶ Local vars
C:\Python37\lib\site-packages\django\template\backends\django.py in render
            return self.template.render(context) …
▶ Local vars
C:\Python37\lib\site-packages\django\template\base.py in render
                    return self._render(context) …
▶ Local vars
C:\Python37\lib\site-packages\django\template\base.py in _render
        return self.nodelist.render(context) …
▶ Local vars
C:\Python37\lib\site-packages\django\template\base.py in render
                bit = node.render_annotated(context) …
▶ Local vars
C:\Python37\lib\site-packages\django\template\base.py in render_annotated
            return self.render(context) …
▶ Local vars
C:\Python37\lib\site-packages\django\template\loader_tags.py in render
            return compiled_parent._render(context) …
▶ Local vars
C:\Python37\lib\site-packages\django\template\base.py in _render
        return self.nodelist.render(context) …
▶ Local vars
C:\Python37\lib\site-packages\django\template\base.py in render
                bit = node.render_annotated(context) …
▶ Local vars
C:\Python37\lib\site-packages\django\template\base.py in render_annotated
            return self.render(context) …
▶ Local vars
C:\Python37\lib\site-packages\django\template\loader_tags.py in render
                result = block.nodelist.render(context) …
▶ Local vars
C:\Python37\lib\site-packages\django\template\base.py in render
                bit = node.render_annotated(context) …
▶ Local vars
C:\Python37\lib\site-packages\django\template\base.py in render_annotated
            return self.render(context) …
▶ Local vars
C:\Python37\lib\site-packages\django\template\defaulttags.py in render
                    nodelist.append(node.render_annotated(context)) …
▶ Local vars
C:\Python37\lib\site-packages\django\template\base.py in render_annotated
            return self.render(context) …
▶ Local vars
C:\Python37\lib\site-packages\django\template\defaulttags.py in render
            url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app) …
▶ Local vars
C:\Python37\lib\site-packages\django\urls\base.py in reverse
    return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)) …
▶ Local vars
C:\Python37\lib\site-packages\django\urls\resolvers.py in _reverse_with_prefix
        raise NoReverseMatch(msg) …
▶ Local vars

URLS.PY:


from . import views

urlpatterns = [
    path('', views.cars, name='cars'),
    path('<int:id>', views.car_detail, name='car_detail'),
] 

家庭模板:

                              <div class="overlap-box">
                                <div class="overlap-btns-area">
                                    <div class="car-magnify-gallery">
                                        <a href="{{each_car.car_image.url}}" class="overlap-btn">
                                            <i class="fa fa-expand"></i>
                                            <img class="hidden" src="{{each_car.car_image.url}}">
                                        </a>

                                        {% if each_car.car_image_1 %}
                                        <a href="{{each_car.car_image_1.url}}" class="hidden">
                                            <img class="hidden" src="{{each_car.car_image_1.url}}">
                                        </a>
                                        {% endif%}
                                        {% if each_car.car_image_2 %}
                                        <a href="{{each_car.car_image_2.url}}" class="hidden">
                                            <img class="hidden" src="{{each_car.car_image_2.url}}">
                                        </a>
                                        {% endif%}
                                        {% if each_car.car_image_3 %}
                                        <a href="{{each_car.car_image_3.url}}" class="hidden">
                                            <img class="hidden" src="{{each_car.car_image_3.url}}">
                                        </a>
                                        {% endif%}
                                        {% if each_car.car_image_4 %}
                                        <a href="{{each_car.car_image_4.url}}" class="hidden">
                                            <img class="hidden" src="{{each_car.car_image_4.url}}">
                                        </a>
                                        {% endif%}
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="detail">
                        <h1 class="title">
                            <a href="{% url 'car_detail' car.id %}">{{each_car.car_title}}</a>
                        </h1>
                        <div class="location">
                            <a href="{% url 'car_detail' car.id %}">
                                <i class="flaticon-pin"></i>{{each_car.state}}, {{each_car.city}}
                            </a>
                        </div>
                    </div>

意见.PY:

def car_detail(request, id):
    single_car = get_object_or_404(Car, pk=id)
    data = {
        'single_car': single_car,
    }
    return render(request, 'cars/car_detail.html', data)

标签: pythondjangodjango-views

解决方案


尝试这个...

<div class="detail">
  <h1 class="title">
    <a href="{% url 'car_detail' each_car.id %}">{{each_car.car_title}}</a>
  </h1>
  <div class="location">
    <a href="{% url 'car_detail' each_car.id %}">
      <i class="flaticon-pin"></i>{{each_car.state}}, {{each_car.city}}
    </a>
  </div>
</div>

推荐阅读