反向匹配适用于jsonResponse,但不适用于rend

2024-09-24 12:21:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个新页面,其中包含:

   def person(request, galid):
       bunch of stuff
       context = { blah blah }
   # return JsonResponse(context)
   return render(request, 'pops/person.html', context)

使用url.py

   urlpatterns = [
       path('', views.index, name='index'),
       path('<slug:galid>' , views.person, name="person")
   ]

虽然jsonResponse工作得非常好,但返回所需galid字符串(十六进制字符串)处的上下文对象。当我使用render时,它抛出:

   NoReverseMatch at /pops/7B909B19F98049948523899280807F9F
   Reverse for 'person' with arguments '('',)' not found. 1 pattern(s) 
   tried: ['pops\\/(?P<galid>[-a-zA-Z0-9_]+)$']

如果真的没有反向匹配,jsonResponse如何工作?这里发生了什么事?谢谢

令人不快的href调用是:

    href="{% url 'pops:person' id %}"

其中id是十六进制字符串


Tags: path字符串nameurlindexreturnrequestcontext