Database issues caused by '@ computed_field'
Opened this issue · 0 comments
kuuuuy commented
Reflex: 0.8.11
OS: windows 11
python: 3.12
I created the database model in the following way, But an error occurred, and I found that it was related to '@ computed_field', It seems to conflict with the '@ computed_field' feature
class Stock(rx.Model, table=True):
__tablename__ = 'stock'
id: int | None = Field(default=None, primary_key=True)
timestamp: date
code: str
open: float
high: float
low: float
close: float
@computed_field
def color(self) -> str:
if self.close > self.open:
return 'red'
else:
return 'green'Error Log
Process granian-worker:
Traceback (most recent call last):
File "C:\Users\root\AppData\Roaming\uv\python\cpython-3.12.11-windows-x86_64-none\Lib\multiprocessing\process.py", line 314, in _bootstrap
self.run()
File "C:\Users\root\AppData\Roaming\uv\python\cpython-3.12.11-windows-x86_64-none\Lib\multiprocessing\process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "E:\Works\RedRedFireFire\.venv\Lib\site-packages\granian\server\mp.py", line 65, in wrapped
callback = callback_loader()
^^^^^^^^^^^^^^^^^
File "E:\Works\RedRedFireFire\.venv\Lib\site-packages\granian\_internal.py", line 65, in load_target
module = load_module(path)
^^^^^^^^^^^^^^^^^
File "E:\Works\RedRedFireFire\.venv\Lib\site-packages\granian\_internal.py", line 47, in load_module
__import__(module_name)
File "E:\Works\RedRedFireFire\RedRedFireFire\RedRedFireFire.py", line 4, in <module>
from RedRedFireFire.backend.server import app as backend_app
File "E:\Works\RedRedFireFire\RedRedFireFire\backend\server.py", line 8, in <module>
from RedRedFireFire.backend.stock import router
File "E:\Works\RedRedFireFire\RedRedFireFire\backend\stock.py", line 82, in <module>
from RedRedFireFire.database.dbmanager import DBManager
File "E:\Works\RedRedFireFire\RedRedFireFire\database\dbmanager.py", line 7, in <module>
from RedRedFireFire.database.tables import Stock
File "E:\Works\RedRedFireFire\RedRedFireFire\database\tables.py", line 8, in <module>
class Stock(rx.Model, table=True):
File "E:\Works\RedRedFireFire\.venv\Lib\site-packages\sqlmodel\main.py", line 539, in __new__
new_cls = super().__new__(cls, name, bases, dict_used, **config_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\Works\RedRedFireFire\.venv\Lib\site-packages\pydantic\v1\main.py", line 221, in __new__
inferred = ModelField.infer(
^^^^^^^^^^^^^^^^^
File "E:\Works\RedRedFireFire\.venv\Lib\site-packages\pydantic\v1\fields.py", line 504, in infer
return cls(
^^^^
File "E:\Works\RedRedFireFire\.venv\Lib\site-packages\pydantic\v1\fields.py", line 434, in __init__
self.prepare()
File "E:\Works\RedRedFireFire\.venv\Lib\site-packages\pydantic\v1\fields.py", line 544, in prepare
self._set_default_and_type()
File "E:\Works\RedRedFireFire\.venv\Lib\site-packages\pydantic\v1\fields.py", line 568, in _set_default_and_type
default_value = self.get_default()
^^^^^^^^^^^^^^^^^^
File "E:\Works\RedRedFireFire\.venv\Lib\site-packages\pydantic\v1\fields.py", line 437, in get_default
return smart_deepcopy(self.default) if self.default_factory is None else self.default_factory()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\Works\RedRedFireFire\.venv\Lib\site-packages\pydantic\v1\utils.py", line 694, in smart_deepcopy
return deepcopy(obj) # slowest way when we actually might need a deepcopy
^^^^^^^^^^^^^
File "C:\Users\root\AppData\Roaming\uv\python\cpython-3.12.11-windows-x86_64-none\Lib\copy.py", line 162, in deepcopy
y = _reconstruct(x, memo, *rv)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\root\AppData\Roaming\uv\python\cpython-3.12.11-windows-x86_64-none\Lib\copy.py", line 260, in _reconstruct
if hasattr(y, '__setstate__'):
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\Works\RedRedFireFire\.venv\Lib\site-packages\pydantic\_internal\_decorators.py", line 210, in __getattr__
return getattr(self.wrapped, name)
^^^^^^^^^^^^
File "E:\Works\RedRedFireFire\.venv\Lib\site-packages\pydantic\_internal\_decorators.py", line 210, in __getattr__
return getattr(self.wrapped, name)
^^^^^^^^^^^^
File "E:\Works\RedRedFireFire\.venv\Lib\site-packages\pydantic\_internal\_decorators.py", line 210, in __getattr__
return getattr(self.wrapped, name)
^^^^^^^^^^^^
[Previous line repeated 949 more times]