Django .Reverse 用于“医生”,没有找到任何参数。尝试了 1 种模式:['doctor / (?P <pk> [^ /] +) / $']
Posted
技术标签:
【中文标题】Django .Reverse 用于“医生”,没有找到任何参数。尝试了 1 种模式:[\'doctor / (?P <pk> [^ /] +) / $\']【英文标题】:Django .Reverse for 'doctor' with no arguments not found. 1 pattern (s) tried: ['doctor / (? P <pk> [^ /] +) / $']Django .Reverse 用于“医生”,没有找到任何参数。尝试了 1 种模式:['doctor / (?P <pk> [^ /] +) / $'] 【发布时间】:2021-02-20 08:18:33 【问题描述】:框架 Django。 我正在尝试通过创建每个用户(医生)的 id 的自动 url 来创建指向每个用户(医生)个人资料的链接。出现错误:未找到没有参数的“医生”的反向。尝试了 1 种模式:['doctor / (?P [^ /] +) / $']
我想我需要在模板链接中添加第二个参数,但我无法弄清楚“% url 'doctor' ??%”
..."% url 'doctor' %"...
view.py
def doctor(request, pk):
doctors = Doctor.objects.get(pk)
return render(request, 'main/doctor.html', 'doctors': doctors)
网址
path('doctor/<str:pk>/', views.doctor, name='doctor'),
【问题讨论】:
这能回答你的问题吗? How to add url parameters to Django template url tag? docs.djangoproject.com/en/3.1/topics/http/urls/… 这样传递参数:% url 'doctor' pk=doctors.pk % 【参考方案1】:这样传递pk参数% url 'doctor' doctor.pk %
主键通常也是整数类型,因此您可以在 urls.py 中进行此更正
path('doctor/<int:pk>/', views.doctor, name='doctor'),
【讨论】:
不起作用,“医生”的错误反转,未找到参数“(”,)”。尝试了 1 种模式:['doctor/(?P主键是字符串的一种整数类型,所以我们需要在url.py
中传递int。
所以url.py
应该是这样的,
path('doctor/<int:pk>/', views.doctor, name='doctor'),
如果您想要一个具有某些主键的特定医生,您可以在模板上下文中传递它,在这种情况下您不需要使用数据库管理器查询数据库。只需简单地将主键传递给模板,django 将为您处理其余部分。?
在doctor.html
,
<a href="% url 'doctor' pk %">doctor with special pk </a>
更多信息可以参考官方文档reverse-resolution-of-urls.
【讨论】:
不起作用,“医生”的错误反向,没有找到参数“(”,)”。尝试了 1 种模式:['doctor/(?P可能是错字,但值得一试
在views.py
文件中传递变量doctors
所以在你的模板编辑中
% url 'doctor' doctor.pk %
到
% url 'doctors' doctors.pk %
【讨论】:
以上是关于Django .Reverse 用于“医生”,没有找到任何参数。尝试了 1 种模式:['doctor / (?P <pk> [^ /] +) / $']的主要内容,如果未能解决你的问题,请参考以下文章
用于 JavaScript 的 Django reverse()
django url reverse不适用于命名的url(重新编辑)找到了原因,但现在卡住了!
没有找到带有参数“()”和关键字参数“”的 Django Reverse
Django url 标签和reverse()函数的使用(转)