浏览代码

add support for sqlalchemy AssociationProxys (#2809)

* add support for sqlalchemy AssociationProxys

* python 3.8 compatibility
benedikt-bartscher 1 年之前
父节点
当前提交
f5b7eca9c7
共有 1 个文件被更改,包括 8 次插入0 次删除
  1. 8 0
      reflex/utils/types.py

+ 8 - 0
reflex/utils/types.py

@@ -23,6 +23,7 @@ from typing import (
 
 import sqlalchemy
 from pydantic.fields import ModelField
+from sqlalchemy.ext.associationproxy import AssociationProxyInstance
 from sqlalchemy.ext.hybrid import hybrid_property
 from sqlalchemy.orm import DeclarativeBase, Mapped, QueryableAttribute, Relationship
 
@@ -194,6 +195,13 @@ def get_attribute_access_type(cls: GenericType, name: str) -> GenericType | None
                 return List[class_]
             else:
                 return class_
+        if isinstance(attr, AssociationProxyInstance):
+            return List[
+                get_attribute_access_type(
+                    attr.target_class,
+                    attr.remote_attr.key,  # type: ignore[attr-defined]
+                )
+            ]
     elif isinstance(cls, type) and issubclass(cls, Model):
         # Check in the annotations directly (for sqlmodel.Relationship)
         hints = get_type_hints(cls)