You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
TypeError: can't automatically generate a primary field since an 'id' field already exists
Traceback (most recent call last):
File "D:\Python\Python312\Lib\runpy.py", line 198, in _run_module_as_main
return _run_code(code, main_globals, None,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Python\Python312\Lib\runpy.py", line 88, in _run_code
exec(code, run_globals)
File "c:\Users\DELL\.vscode\extensions\ms-python.debugpy-2024.4.0-win32-x64\bundled\libs\debugpy\adapter/../..\debugpy\launcher/../..\debugpy\__main__.py", line 39, in <module>
cli.main()
File "c:\Users\DELL\.vscode\extensions\ms-python.debugpy-2024.4.0-win32-x64\bundled\libs\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 430, in main
run()
File "c:\Users\DELL\.vscode\extensions\ms-python.debugpy-2024.4.0-win32-x64\bundled\libs\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 284, in run_file
runpy.run_path(target, run_name="__main__")
File "c:\Users\DELL\.vscode\extensions\ms-python.debugpy-2024.4.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 321, in run_path
return _run_module_code(code, init_globals, run_name,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\DELL\.vscode\extensions\ms-python.debugpy-2024.4.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 135, in _run_module_code
_run_code(code, mod_globals, init_globals,
File "c:\Users\DELL\.vscode\extensions\ms-python.debugpy-2024.4.0-win32-x64\bundled\libs\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 124, in _run_code
exec(code, run_globals)
File "D:\projects\mcim-backend\test.py", line 1, in <module>
from main import *
File "D:\projects\mcim-backend\main.py", line 3, in <module>
from config import redis_broker
File "D:\projects\mcim-backend\config.py", line 9, in <module>
from models.modrinth import Project, Version, File
File "D:\projects\mcim-backend\models\modrinth.py", line 16, in <module>
class Project(Model):
File "d:\projects\mcim-backend\.venv\Lib\site-packages\odmantic\model.py", line 463, in __new__
raise TypeError(
TypeError: can't automatically generate a primary field since an 'id' field already exists
Pydantic infos (output of python -c "import pydantic.utils; print(pydantic.utils.version_info())):
D:\projects\mcim-backend\.venv\Lib\site-packages\pydantic\_migration.py:283: UserWarning: `pydantic.utils:version_info` has been moved to `pydantic.version:version_info`.
warnings.warn(f'`{import_path}` has been moved to `{new_location}`.')
pydantic version: 2.7.1
pydantic-core version: 2.18.2
pydantic-core build: profile=release pgo=true
install path: D:\projects\mcim-backend\.venv\Lib\site-packages\pydantic
python version: 3.12.1 (tags/v3.12.1:2305ca5, Dec 7 2023, 22:03:25) [MSC v.1937 64 bit (AMD64)]
platform: Windows-11-10.0.22631-SP0
related packages: typing_extensions-4.11.0
commit: unknown
Version of additional modules (if relevant):
...
Additional context
check key_word plz
ifprimary_fieldisNone:
if"id"inodm_fields:
# FIX: find that field in the odm_fields and check its `key_name`raiseTypeError(
"can't automatically generate a primary field since an 'id' ""field already exists"
)
primary_field="id"odm_fields["id"] =ODMField(
primary_field=True, key_name="_id", model_config=config
)
namespace["id"] =PDField(default_factory=ObjectId)
namespace["__annotations__"]["id"] =ObjectId
The text was updated successfully, but these errors were encountered:
ifprimary_fieldisNone:
if"id"inodm_fields:
ifodm_fields["id"].key_namein ("id", None):
raiseTypeError(
"can't automatically generate a primary field since an 'id' ""field already exists"
)
But another error
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "D:\projects\mcim-backend\.venv\Lib\site-packages\odmantic\model.py", line 543, in __init__
super().__init__(**data)
File "D:\projects\mcim-backend\.venv\Lib\site-packages\pydantic\main.py", line 176, in __init__
self.__pydantic_validator__.validate_python(data, self_instance=self)
pydantic_core._pydantic_core.ValidationError: 2 validation errors for Project
id.is-instance[ObjectId]
Input should be an instance of ObjectId [type=is_instance_of, input_value='A', input_type=str]
For further information visit https://errors.pydantic.dev/2.7/v/is_instance_of
id.chain[union[str,bytes],function-plain[validate_from_string_or_bytes()]]
Value error, Invalid ObjectId [type=value_error, input_value='A', input_type=str]
For further information visit https://errors.pydantic.dev/2.7/v/value_error
Bug
key_name
doesn't work whenid
Current Behavior
TypeError: can't automatically generate a primary field since an 'id' field already exists
Expected behavior
work as
proid
successfullyEnvironment
python -c "import pydantic.utils; print(pydantic.utils.version_info())
):Additional context
check
key_word
plzThe text was updated successfully, but these errors were encountered: