pydantic circular references
次のエラーが発生しました.この場合、異なるファイルからclassを取得してtypeヒントを行う必要があります.
type hintingを文字列として処理します.次に、ループリファレンスのclass importを呼び出し、update forward refsを呼び出します.これにより,実際のモデルを作成する際にtype hintのモデルを参照しないことでループ参照を解決できる.
update forward refsの役割は、文字列が参照するクラスを再参照することであるようです.最終的には、モデルの作成時にループ参照を引き起こすclassを文字列としてマージし、生成後に正しいclassをインポートする場合があります.
リファレンス
Postponed annotations
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
Reference
この問題について(pydantic circular references), 我々は、より多くの情報をここで見つけました https://velog.io/@samnaka/pydantic-circular-referencesテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol