Я пытаюсь создать запрос, который требует подбора полей типа Connection
.Я попытался несколько разных комбинаций SQLAlchemyConnectionField
, которые приводят к ошибкам различного рода.
books_connection = SQLAlchemyConnectionField(graphene.NonNull(Book))
books_connection = SQLAlchemyConnectionField(Book, required=True)
и оба результата
TypeError: issubclass() arg 1 must be a class
и
books_connection = graphene.NonNull(SQLAlchemyConnectionField(Book))
books_connection = graphene.Field(SQLAlchemyConnectionField(Book), required=True)
оба результата
AttributeError: 'SQLAlchemyConnectionField' object has no attribute '_meta'
Тип Book
определяется следующим образом:
class Book(SQLAlchemyObjectType):
class Meta:
model = models.Book
interfaces = (graphene.relay.Node, )
only_fields = ("id", "title", "author", "last_read_at", "is_best_seller", "price", )
genre = BookGenreEnum()
Тип Query
выглядит следующим образом:
class Query(graphene.ObjectType):
book = graphene.Field(Book, id=graphene.ID(), required=True)
books = graphene.List(graphene.NonNull(Book), required=True)
books_connection = SQLAlchemyConnectionField(Book) # Want this to be required!
def resolve_book(parent, info, **kwargs):
session = info.context.get("session")
return session.query(models.Book).get(kwargs["id"])
def resolve_books(parent, info):
session = info.context.get("session")
return session.query(models.Book).all()