姜戈 .反转'doctor',未找到任何参数。尝试了 1 种模式: ['医生 / (?P <pk> [^ /] +) / $']



框架Django。我正试图通过根据每个用户(医生(的id创建一个自动url来创建一个指向其个人资料的链接。出现一个错误:反转为"医生",找不到任何参数。已尝试1种模式:[doctor/(?P[^/]+(/$']

我想我需要在模板链接中添加第二个参数,但我无法计算出"{%url"医生"??%}">

html

..."{% url 'doctor'  %}"...

view.py

def doctor(request, pk):
doctors = Doctor.objects.get(pk)
return render(request, 'main/doctor.html', {'doctors': doctors})

urls

path('doctor/<str:pk>/', views.doctor, name='doctor'),

像这样传递pk参数{% url 'doctor' doctor.pk %}

主键通常是整数类型的,所以您可以在urls.py 中进行更正

path('doctor/<int:pk>/', views.doctor, name='doctor'),

主键是字符串的一种整数瞬间类型,因此我们需要在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>

有关更多信息,您可以参考官方文档url的反向解析。

可能是打字错误,但值得一试在views.py文件中,传递变量doctors所以在你的模板中编辑

{% url 'doctor' doctor.pk %}

{% url 'doctors' doctors.pk %}

最新更新