Django 页面视图引用id,而path不要求id
我想加载默认的django页面。没什么特别的。但是,我得到的错误提示id设置不正确 “字段'id'需要一个数字,但得到'zoekboek'。” 这里令人困惑的事情(我是django初学者,因此如果这对您来说一点都不困惑,我也不会感到惊讶):Django 页面视图引用id,而path不要求id,django,django-urls,Django,Django Urls,我想加载默认的django页面。没什么特别的。但是,我得到的错误提示id设置不正确 “字段'id'需要一个数字,但得到'zoekboek'。” 这里令人困惑的事情(我是django初学者,因此如果这对您来说一点都不困惑,我也不会感到惊讶): URL.py中此页面的路径没有要求id 视图还没有查询任何内容(我发现一些帖子有类似的错误, 但与过滤器相关) 调试信息指向另一个确实正在请求id的视图 当我在路径的开始添加斜线时,错误消失了 代码 url.py urlpatterns=[ 路径(“”
- URL.py中此页面的路径没有要求id
- 视图还没有查询任何内容(我发现一些帖子有类似的错误, 但与过滤器相关)
- 调试信息指向另一个确实正在请求id的视图
- 当我在路径的开始添加斜线时,错误消失了李>
urlpatterns=[
路径(“”,views.scholen,name='scholen'),
路径(“”,views.school\u detail,name='school\u detail'),
路径(“/”,views.school\u groep,name='school\u groep'),
路径('/',views.leerling_页面,name='leerling_页面'),
路径('zoekboek',views.zoekboek,name='zoekboek'),
]
简单修复:将路径('zoekboek',views.zoekboek,name='zoekboek'),
从URL中的最后一位移动到第二位
为什么?
因为Django URL是使用正则表达式解析的;在第3点中,我们可以说:
path\u info
匹配path(“”,views.school\u detail,name='school\u detail'),
非常通用,它匹配任何字符串,包括字符串zoekboek
;因此,对zoekboek
的请求位于URL配置的第二行,并被路由到视图school\u detail()
,该视图需要一个school\u id
建议:为了使URL处理更容易,以便您可以随意排序URL路径,您可以稍微更改URL并添加前缀(例如
school/
),以便没有任何字符串与URL路径匹配。例如,这项工作:
urlpatterns = [
path('', ...),
path('school/<school_id>', ...),
path('school/<school_id>/<groep_id>', ...),
path('school/<school_id>/<groep_id>/<UserProfile_id>', ...),
path('zoekboek', ...),
]
urlpatterns=[
路径(“”,…),
路径('school/',…),
路径('school/',…),
路径(“学校//”,…),
路径('zoekboek',…),
]
简单修复:将路径('zoekboek',views.zoekboek,name='zoekboek'),
从URL中的最后一位移动到第二位
为什么?
因为Django URL是使用正则表达式解析的;在第3点中,我们可以说:
path\u info
匹配path(“”,views.school\u detail,name='school\u detail'),
非常通用,它匹配任何字符串,包括字符串zoekboek
;因此,对zoekboek
的请求位于URL配置的第二行,并被路由到视图school\u detail()
,该视图需要一个school\u id
建议:为了使URL处理更容易,以便您可以随意排序URL路径,您可以稍微更改URL并添加前缀(例如
school/
),以便没有任何字符串与URL路径匹配。例如,这项工作:
urlpatterns = [
path('', ...),
path('school/<school_id>', ...),
path('school/<school_id>/<groep_id>', ...),
path('school/<school_id>/<groep_id>/<UserProfile_id>', ...),
path('zoekboek', ...),
]
urlpatterns=[
路径(“”,…),
路径('school/',…),
路径('school/',…),
路径(“学校//”,…),
路径('zoekboek',…),
]
你能发布完整的错误消息吗?简单的修复方法是:将路径('zoekboek',views.zoekboek,name='zoekboek'),
从你记忆中的最后一位移到第二位urls@Ralf哇,真是妙计!我不知道路径的顺序很重要。谢谢!!你能发布完整的错误消息吗?简单的修复方法是:将path('zoekboek',views.zoekboek,name='zoekboek'),
从你的最后一位移到第二位urls@Ralf哇,真是妙计!我不知道路径的顺序很重要。谢谢!!很好的解释。我想我需要开始使用正则表达式:)谢谢!很好的解释。我想我需要开始使用正则表达式:)谢谢!