amisadmin / fastapi-config

FastAPI-Config is a visual dynamic configuration management extension based on FastAPI-Amis-Admin.
8 stars 2 forks source link

样例管理界面报错 “内部服务器异常” #2

Open oubeichen opened 1 month ago

oubeichen commented 1 month ago

照着README.md样例写的(当然因为新版本 FastAPI 会报错 Cannot add middleware after an application has started,所以要把 site.mount_app 放到外面),接口返回“内部服务器异常”

然后在 fastapi_amis_adminserver_error_handler 打断点调试,发现报错是

AttributeError("module 'fastapi_amis_admin.globals' has no attribute 'config_store'")

分析代码定位到报错点应该是

https://github.com/amisadmin/fastapi-config/blob/4eb7e83a86383a26f1fcc106a7eede1af9e7cfa0/fastapi_config/admin.py#L31

上面导入的是

https://github.com/amisadmin/fastapi-config/blob/4eb7e83a86383a26f1fcc106a7eede1af9e7cfa0/fastapi_config/admin.py#L5

根据

https://github.com/amisadmin/fastapi-amis-admin/blob/master/fastapi_amis_admin/globals/__init__.py

确实没找到 config_store 相关定义。

# from fastapi_amis_admin import globals as g
# 是不是应该改成 fastapi_config 自带的 config,但是这样会导致循环引用
from fastapi_config import globals as g
oubeichen commented 1 month ago

目前我的解决方案是在 dbconfig下面手动添加一行

from fastapi_amis_admin import globals as g

...

dbconfig = DbConfigStore(site.db)

g.set_global("config_store", dbconfig)

...