我在这个django项目中工作,在尝试访问景点/地图时不断出现此错误
错误消息:
找不到页面(404)
请求方法:GET
请求网址:http://35.188.51.159/sightings/map/
提出者:sightings.views.detail”
终端提示:
df["Height (cm)"]= df["Height (cm)"].fillna(0).astype(int)
这是我的Sightnings / views.py文件,其中提供了地图:
Not Found: /sightings/map/
[20/Oct/2020 15:43:07] "GET /sightings/map/ HTTP/1.1" 404 1742
还有景点/urls.py
def show_map(request):
sightings = Squirrel.objects.all()[:100]
context = {
'sightings': sightings
}
return render(request, 'sightings/map.html', context)
这是主网址文件:
from django.urls import path
from . import views
app_name = 'sightings'
urlpatterns = [
path('', views.index, name='index'),
path('add/', views.add, name='add'),
path('stats/', views.stats, name='stats'),
path('<squirrel_id>/', views.detail, name='detail'),
path('map/', views.show_map, name='show_map'),
]
我所有其他功能都工作正常,唯一的问题是地图。
答案 0 :(得分:0)
如果您查看哪个视图会引发404,您会注意到它是sightings.views.detail
。
该视图已映射到path('<squirrel_id>/', views.detail, name='detail'),
。
这意味着在sightings/
下找到的任何内容都将被视为url参数,例如,如果您调用sightings/map
,它将把map
视为squirrel_id
并会调用views.detail
。
也许您在get_object_or_404
中有一些views.detail
逻辑,如果您没有将任何squirrel(?)与给定的<squirrel_id>
相匹配,则会返回404。
如果您要调用show_map
视图,则:
'detail/<squirrel_id>/'
。'map/'
移到'<squirrel_id>/'
上方,因为网址匹配遵循位置顺序。