pydantic circular references


次のエラーが発生しました.この場合、異なるファイルからclassを取得してtypeヒントを行う必要があります.pydantic.errors.ConfigError: field "" not yet prepared so type is still a ForwardRef, you might need to call Model.update_forward_refs().これは以下の方法では解決できない問題です.
from __future__ import annotations

if TYPE_CHECKING:
    import some_module
エラーメッセージに示すようにupdate forward refsを呼び出す必要があります.問題は、先にインポートするのでupdate forward refsメソッドを呼び出しても役に立たないことです.
type hintingを文字列として処理します.次に、ループリファレンスのclass importを呼び出し、update forward refsを呼び出します.これにより,実際のモデルを作成する際にtype hintのモデルを参照しないことでループ参照を解決できる.
update forward refsの役割は、文字列が参照するクラスを再参照することであるようです.最終的には、モデルの作成時にループ参照を引き起こすclassを文字列としてマージし、生成後に正しいclassをインポートする場合があります.
リファレンス
Postponed annotations