Django 检查是否提供了 url 参数
Django check if url parameter was provided
我有一个 url :
path('admin-panel/users/update/<id>/',user_update_for_admin, name="user_update_for_admin"),
以及 url 的视图:
def user_update_for_admin(request,id):
user = get_object_or_404(UsersForAdmin, id=id)
一切正常,但如果 url 中未提供 ID,例如,如果我输入:
admin-panel/users/update/
我收到这个错误:
字段 'id' 需要一个数字但得到了 'update'。
我该如何解决?
使用 path converter [Django-doc] 这样 URL 只有 "fire" 如果它是一个数字(数字序列):
path(
'admin-panel/users/update/<b><int:id></b>/',
user_update_for_admin,
name='user_update_for_admin'
),
如果您传递一个非整数值,它不会"fire"并寻找其他路径。如果没有路径捕获 url 模式,它将 return 404,这可能是最明智的 HTTP 响应。
您还需要将上面的路径改写为:
path(
'admin-panel/users/<b><int:id></b>/',
user_detail_for_admin,
name='user_detail_for_admin'
)
我有一个 url :
path('admin-panel/users/update/<id>/',user_update_for_admin, name="user_update_for_admin"),
以及 url 的视图:
def user_update_for_admin(request,id):
user = get_object_or_404(UsersForAdmin, id=id)
一切正常,但如果 url 中未提供 ID,例如,如果我输入:
admin-panel/users/update/
我收到这个错误: 字段 'id' 需要一个数字但得到了 'update'。 我该如何解决?
使用 path converter [Django-doc] 这样 URL 只有 "fire" 如果它是一个数字(数字序列):
path(
'admin-panel/users/update/<b><int:id></b>/',
user_update_for_admin,
name='user_update_for_admin'
),
如果您传递一个非整数值,它不会"fire"并寻找其他路径。如果没有路径捕获 url 模式,它将 return 404,这可能是最明智的 HTTP 响应。
您还需要将上面的路径改写为:
path(
'admin-panel/users/<b><int:id></b>/',
user_detail_for_admin,
name='user_detail_for_admin'
)