django找不到页面(404),找不到地图

时间:2020-10-20 15:51:09

标签: python django

我在这个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'),
]

我所有其他功能都工作正常,唯一的问题是地图。

1 个答案:

答案 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视图,则:

  1. 将具有urlparameter的模式更改为唯一的模式,例如'detail/<squirrel_id>/'
  2. 'map/'移到'<squirrel_id>/'上方,因为网址匹配遵循位置顺序。