我有一个模型Position
,我创建了一个详细视图以查看每个单独的位置。
views.py
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)
positions / 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)时,出现页面未找到404错误。但是,使用其他任何ID,页面加载就可以了。关于为什么模型中的第一个id给出404错误的任何想法?
编辑1:回溯错误
找不到页面(404)请求方法:GET请求 URL:http://localhost:8000/apply/1/使用在 bta_website.urls,Django按以下顺序尝试了以下URL模式:
admin / [name ='home']申请/申请/申请/申请/ [name ='detail']当前路径apply / 1 /与任何这些都不匹配。
您看到此错误,因为您的Django中的DEBUG = True 设置文件。将其更改为False,Django将显示一个 标准404页面。
答案 0 :(得分:1)
Django get_object_or_404
的工作方式如下。
get_object_or_404(klass, *args, **kwargs)
在给定的模型管理器上调用get(),但它引发Http404而不是模型的DidNotExist异常。 就你而言 您的URL路径配置不正确。 尝试进行以下更改:
path('/<int:id>/', position_detail_view, name='detail')