【问题标题】:Reverse for 'db' with arguments '('',)' not found. 1 pattern(s) tried: ['db/(?P<db_id>[^/]+)/$']未找到带有参数 '('',)' 的 'db' 的反向操作。尝试了 1 种模式:['db/(?P<db_id>[^/]+)/$']
【发布时间】:2022-01-17 00:54:24
【问题描述】:

当我试图在 id 的帮助下从 db.html 中获取项目时,它会显示错误 我不明白问题出在哪里 请帮帮我

场地.html

{% extends 'MYapp/index.html' %}
{% block content %}

<center>
    <h1> venue.html </h1>
    <br>



    <div class="card-header">
        Featured
    </div>

    <div class="card-body container-fluid">
        <h5 class="card-title">Special title treatment</h5>
        {% for venues in venue_list %}
        <p class="card-text container-fluid">


            <a href="{% url 'db' all.id %}"> {{ venues }} {{ venues.lastname}}</a>
            {% endfor %}
        </p>

    </div>

</center>


{% endblock %}

views.py

 from django.shortcuts import render
 from django.http import *
 from  MYapp.models import *
 from .form import *



 def index(request):
    return render(request,'MYapp/index.html')
 def venue(request):
    venue_list = Task.objects.all()
    return render(request,'MYapp/venue.html',{'venue_list': venue_list})
 def db(request, db_id):
    all = Task.objects.get(pk= db_id)
    return render(request,'MYapp/db.html',{'all': all})

urls.py

另一个错误发生了

显示页面未找到

因为这个路径('db//', views.db, name ='db'),

from django.contrib import admin
from django.urls import path
from . import views



urlpatterns = [

    path('nature', views.nature, name ='nature'),
    path('', views.index, name ='index'),

    path('footer', views.footer, name ='footer'),

    path('navebar', views.navebar, name ='navebar'), 

    path('form', views.form, name ='form'),
    path('venue', views.venue, name ='venue'),
    path('db/<db_id>/', views.db, name ='db'),

]

【问题讨论】:

    标签: python django django-views arguments django-urls


    【解决方案1】:

    当您渲染模板venue.html(在名为venue() 的视图函数中)时,您并没有将变量all 传递给上下文,您只是传递了venue_list

    这会导致错误,因为在href="{% url 'db' all.id %}"部分的模板中,变量all不会被定义。

    【讨论】:

      【解决方案2】:

      我发现错误是因为在路径中放置了错误的 url

            <p class="card-text container-fluid">
      
      
                  <a href="{% url 'db' all.id %}"> {{ venues }} {{ 
                  venues.lastname}}</a>
                  {% endfor %}
            </p>
      

      将变量的名称更改为场所,因为您是在 for 循环中完成的 然后

                  <a href="{% url 'db' venues.id %}"> {{ venues }} {{ 
                  venues.lastname}}</a>
                  {% endfor %}
            </p>
      

      【讨论】:

        猜你喜欢
        • 2021-03-26
        • 1970-01-01
        • 1970-01-01
        • 2021-12-20
        • 2020-11-05
        • 2018-11-21
        • 1970-01-01
        • 2023-03-28
        • 2021-04-24
        相关资源
        最近更新 更多