python - Django:必须给出 hex、bytes、bytes_le、fields 或 int 参数之一
问题描述
我正在尝试使用 Django 在 API 中基于 UUIDAutoField 过滤数据。我正在使用 PostgreSQL,但是在从移动应用程序发送数据时,我有一个字符串,并且该字符串 UUID 在 API 级别与相同的 UUID 不匹配,这给了我这个错误:
/api/updatestate/ 处的 TypeError 必须给出 hex、bytes、bytes_le、fields 或 int 参数之一
当我从 API 请求中获取字符串类型 uuid 时,我正在这样做
empId = uuid.UUID(request.POST.get('employee_id'))
Traceback:
File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
34. response = get_response(request)
File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
126. response = self.process_exception_by_middleware(e, request)
File "/app/.heroku/python/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
124. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/app/.heroku/python/lib/python3.6/site-packages/django/views/decorators/csrf.py" in wrapped_view
54. return view_func(*args, **kwargs)
File "/app/.heroku/python/lib/python3.6/site-packages/django/views/generic/base.py" in view
68. return self.dispatch(request, *args, **kwargs)
File "/app/.heroku/python/lib/python3.6/site-packages/rest_framework/views.py" in dispatch
483. response = self.handle_exception(exc)
File "/app/.heroku/python/lib/python3.6/site-packages/rest_framework/views.py" in handle_exception
443. self.raise_uncaught_exception(exc)
File "/app/.heroku/python/lib/python3.6/site-packages/rest_framework/views.py" in dispatch
480. response = handler(request, *args, **kwargs)
File "/app/.heroku/python/lib/python3.6/site-packages/rest_framework/decorators.py" in handler
53. return func(*args, **kwargs)
File "/app/cfkcapi/views.py" in checkstate
78. empId = uuid.UUID(request.POST.get('employee_id'))
File "/app/.heroku/python/lib/python3.6/uuid.py" in __init__
134. raise TypeError('one of the hex, bytes, bytes_le, fields, '
Exception Type: TypeError at /api/updatestate/
Exception Value: one of the hex, bytes, bytes_le, fields, or int arguments must be given
解决方案
错误消息准确地告诉您问题出在哪里:您需要在调用时指定其中一个参数uuid.UUID
(在 views.py 的第 78 行)。 文档很清楚:
必须给出 hex、bytes、bytes_le、fields 或 int 中的一个。
推荐阅读
- c# - 具有内部连接和分组的 Linq
- merge - Perforce 将多个变更列表从一个分支集成到另一个分支,将它们保持为单独的变更列表
- html - 图像的无限横向滚动动画
- visual-studio - 如何使用 NSIS 安装 Visual C++ Redist
- javascript - 如何将 Javascript 中的 blob 表单上传到 Django 后端
- php - 从 Laravel API 服务器接收的数据未显示在 Flutter 屏幕上
- python - 当 NaN 在组列中时,Pandas groupby 会应用奇怪的行为
- reactjs - BabylonJS 和 React - ReferenceError: earcut is not defined
- php - PHP 对象本身的属性是另一个类的另一个对象
- kubernetes - 指标服务器无法从 Windows 工作人员中提取指标