在主 url 之后添加了 Django urls 空间
Posted
技术标签:
【中文标题】在主 url 之后添加了 Django urls 空间【英文标题】:Django urls space gets added after main url 【发布时间】:2017-10-18 02:49:39 【问题描述】:我收到此错误消息
Using the URLconf defined in esarcrm.urls, Django tried these URL patterns, in this order:
1. ^person/ duplicate_check/(?P<entity>)/(?P<full_name>)/?$
2. ^admin/
3. ^api/v1/
4. ^api/v1/authenticate/$ [name='api_authenticate']
5. ^static\/(?P<path>.*)$
6. ^media\/(?P<path>.*)$
The current path, person/duplicate_check/candidate/tom, didn't match any of these.
这里的空格请不要1. ^person/[SPACE]duplicate_check
我的项目/urls.py
urlpatterns = [
url(r'^person/', include('person.urls')),
url(r'^admin/', admin.site.urls),
url(r'^api/v1/', include(router.urls)),
url(r'^api/v1/authenticate/$', crm_views.ApiAuthenticateView.as_view(), name='api_authenticate'),
]
我的 app.urls
urlpatterns = [
url(r'duplicate_check/(?P<entity>)/(?P<full_name>)/?$', views.check_if_exist),
]
我的 app.views
@api_view(['GET'])
def check_if_exist(request, entity, first_name):
if entity == 'candidate':
candidates = person_models.Candidate.objects.filter(first_name=first_name)
serializer = person_serializers.CandidateMiniSerializer(candidates, many=True)
return Response(serializer.data)
我到底错过了什么?
【问题讨论】:
在 `urlpatterns` 在您的应用程序 url 中,您忘记输入^
像 r^'duplicate_check...
【参考方案1】:
没有空格,这就是 Django 打印 URL 的方式。
问题与空格无关,而与您的网址有关。 “duplicate_check”包含在 person/ 下,但您正在尝试访问 p_check/....
编辑您的网址格式实际上存在更大的问题。您实际上并没有给捕获组任何要捕获的东西。您需要括号内的某种模式。比如:
r'^duplicate_check/(?P<entity>\w+)/(?P<full_name>\w+)/?$'
这将捕获实体和全名的所有字母数字字符。
【讨论】:
抱歉,打错了。我实际上在邮递员中是正确的。还是不行以上是关于在主 url 之后添加了 Django urls 空间的主要内容,如果未能解决你的问题,请参考以下文章