正在获取字段 'None' 需要一个数字,但得到了 'update'。在 Django 中使用 UpdateView 时
Getting Field 'None' expected a number but got 'update'. when using UpdateView in Django
我正在为我的更新页面使用 UpdateView,但出现此错误:
字段 'None' 需要一个数字,但得到了 'update'。
我的 urls.py 看起来像这样:
path('post/<pk>/update/', PostUpdateView.as_view(), name='post_update'),
如果我将更新 URL 更改为“post”以外的任何内容,一切正常。例如,这工作正常:
path('abcxyz/<pk>/update/', PostUpdateView.as_view(), name='post_update'),
我想在 URL 中使用单词“post”,因为我也在其他 URL 中使用它并且它们工作正常(删除视图除外,这给了我同样的错误)。有什么方法可以在不更改 URL 的情况下修复此错误?
注意:它以前工作过,但是当我尝试使用 django-PWA 时,它在某个时候坏了。不过我不确定这是否相关。
感谢您的帮助!
这可能是因为您有另一条路径,例如:
path('post/<strong>update/update/</strong>', PostUpdateView.as_view(), name='post_update'),
或类似的东西。一个或两个 update/
是 URL 参数是可能的。
如果您然后例如访问 post/update/update
,并且您的 PostUpdateView
是首先定义的,它将触发带有 pk='update'
的视图。
如果主键只是一个数字,您可以使用 <int:…>
路径转换器来防止在 pk
不是数字序列时触发视图:
path('post/<strong><int:</strong>pk<strong>></strong>/update/', PostUpdateView.as_view(), name='post_update'),
编辑:根据您的评论,在此之前还有另一种观点:
path('post/<strong><year></strong>/<strong><month></strong>/', FilteredPostListView.as_view(), name='filtered_post')
如果这样访问post/123/update
,它会触发FilteredPostListView
,123
为year
,update
为月份,因此它会引发错误。
您可以将路径 放在 ProductUpdateListView
的 之下,并且您可能还想使用 <int:…>
来仅触发视图当两个参数都是数字序列时:
path('post/<strong><int:</strong>year<strong>></strong>/<strong><int:</strong>month<strong>></strong>/', FilteredPostListView.as_view(), name='filtered_post')
我正在为我的更新页面使用 UpdateView,但出现此错误: 字段 'None' 需要一个数字,但得到了 'update'。
我的 urls.py 看起来像这样:
path('post/<pk>/update/', PostUpdateView.as_view(), name='post_update'),
如果我将更新 URL 更改为“post”以外的任何内容,一切正常。例如,这工作正常:
path('abcxyz/<pk>/update/', PostUpdateView.as_view(), name='post_update'),
我想在 URL 中使用单词“post”,因为我也在其他 URL 中使用它并且它们工作正常(删除视图除外,这给了我同样的错误)。有什么方法可以在不更改 URL 的情况下修复此错误?
注意:它以前工作过,但是当我尝试使用 django-PWA 时,它在某个时候坏了。不过我不确定这是否相关。
感谢您的帮助!
这可能是因为您有另一条路径,例如:
path('post/<strong>update/update/</strong>', PostUpdateView.as_view(), name='post_update'),
或类似的东西。一个或两个 update/
是 URL 参数是可能的。
如果您然后例如访问 post/update/update
,并且您的 PostUpdateView
是首先定义的,它将触发带有 pk='update'
的视图。
如果主键只是一个数字,您可以使用 <int:…>
路径转换器来防止在 pk
不是数字序列时触发视图:
path('post/<strong><int:</strong>pk<strong>></strong>/update/', PostUpdateView.as_view(), name='post_update'),
编辑:根据您的评论,在此之前还有另一种观点:
path('post/<strong><year></strong>/<strong><month></strong>/', FilteredPostListView.as_view(), name='filtered_post')
如果这样访问post/123/update
,它会触发FilteredPostListView
,123
为year
,update
为月份,因此它会引发错误。
您可以将路径 放在 ProductUpdateListView
的 之下,并且您可能还想使用 <int:…>
来仅触发视图当两个参数都是数字序列时:
path('post/<strong><int:</strong>year<strong>></strong>/<strong><int:</strong>month<strong>></strong>/', FilteredPostListView.as_view(), name='filtered_post')