未找到带有参数 '('',)' 的 'db' 的反向操作。尝试了 1 种模式:['db/(?P<db_id>[^/]+)/$']
Posted
技术标签:
【中文标题】未找到带有参数 \'(\'\',)\' 的 \'db\' 的反向操作。尝试了 1 种模式:[\'db/(?P<db_id>[^/]+)/$\']【英文标题】: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/
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'),
]
【问题讨论】:
【参考方案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>
【讨论】:
以上是关于未找到带有参数 '('',)' 的 'db' 的反向操作。尝试了 1 种模式:['db/(?P<db_id>[^/]+)/$']的主要内容,如果未能解决你的问题,请参考以下文章
“未找到带有参数 '()' 和关键字参数 '' 的 '' 的反向操作。”
未找到带有参数 '('',)' 的 'todo-user' 的反向操作。已尝试 1 种模式