我有一个模型,Position
,我创建了一个详细视图来查看每个单独的位置。
views.朋友
def position_detail_view(request, id=None):
position = get_object_or_404(Position, id=id)
context= {
'object': position,
}
return render(request, 'positions/position_detail.html', context)
位置/ urls.py
from django.urls import path, include
from .views import position_list_view, position_detail_view
urlpatterns = [
path('', position_list_view),
path('<int:id>', position_detail_view, name='detail')
]
当我去http://localhost:8000/apply/1/,id = 1时,我得到一个Page Not Found 404 Error。但是,对于任何其他id,页面加载就好了。有关为什么模型中的第一个ID给出404错误的任何想法?
编辑1:回溯错误
找不到页面(404)请求方法:GET请求URL:http://localhost:8000/apply/1/使用bta_website.urls中定义的URLconf,Django按以下顺序尝试了这些URL模式:
admin / [name ='home'] apply / application / apply / apply / [name ='detail']当前路径apply / 1 /与其中任何一个都不匹配。
你看到这个错误,因为你的Django设置文件中有DEBUG = True。将其更改为False,Django将显示标准的404页面。
Django get_object_or_404
的作用如下。
get_object_or_404(klass, *args, **kwargs)
在给定的模型管理器上调用get(),但它引发了Http404而不是模型的DoesNotExist异常。在您的情况下,您的URL路径未正确配置。尝试对此进行更改:
path('/<int:id>/', position_detail_view, name='detail')