0
GraphQL実装の過程で、私はパッケージをモジュラーに保つために多くの循環参照を作成しています。次のフォルダ構造を考えてみましょう。循環参照パッケージ - Python/Django
project/
__init__.py
graphql/
__init__.py
inputs/
__init__.py
company.py
contact.py
company.py
import graphene
import graphql.inputs.contact
class CompanyInput(graphene.InputObjectType):
contacts = graphene.List(graphql.inputs.contacts.ContactInput)
...
contact.py
import graphene
import graphql.inputs.company
class ContactInput(graphene.InputObjectType):
company = graphql.inputs.company.CompanyInput()
私は一貫してDjangoのエラーを取得:
ImportError at /api/v2/
Could not import 'gql.schema.schema' for Graphene setting 'SCHEMA'. AttributeError: 'module' object has no attribute 'company'.
このような循環参照が可能ですか?連絡先と会社は、別々のパッケージで定義された入力オブジェクトクラスを参照できる必要があります。これは、graphqlが子と一緒に入力を受け取り、ネストされた作成を許可し、親を作成してオブジェクトの入力を許可できるようにするためです。