1
0
Эх сурвалжийг харах

state: unbreak backend vars

This one was really esoteric... if backend vars are used, then a
`model_post_init` gets synthesized, and reflex tries to treat that as an event
handler... but the args cannot convert correctly, so it raises a validation
error when attempting to instantiate the EventSpec (which is also a BaseModel).
Masen Furer 1 жил өмнө
parent
commit
62d36bfecc
1 өөрчлөгдсөн 5 нэмэгдсэн , 0 устгасан
  1. 5 0
      reflex/state.py

+ 5 - 0
reflex/state.py

@@ -153,6 +153,10 @@ RESERVED_BACKEND_VAR_NAMES = {
     "_abc_impl",  # pydantic v2 adds this
 }
 
+SPECIAL_METHODS = {
+    "model_post_init",  # never treat this as an event handler
+}
+
 
 class BaseState(Base, ABC, extra=pydantic.Extra.allow):
     """The state of the app."""
@@ -358,6 +362,7 @@ class BaseState(Base, ABC, extra=pydantic.Extra.allow):
             name: fn
             for name, fn in cls.__dict__.items()
             if not name.startswith("_")
+            and name not in SPECIAL_METHODS
             and isinstance(fn, Callable)
             and not isinstance(fn, EventHandler)
         }