Private Strawberry Field Error#
Description#
This error is thrown when using both strawberry.Private[Type] and
strawberry.field on the same field, for example the following code will throw
this error:
import strawberry
@strawberry.type
class Query:
name: str
age: strawberry.Private[int] = strawberry.field(name="ageInYears")
schema = strawberry.Schema(query=Query)
This happens because a strawberry.Private field is not going to be exposed in
the GraphQL schema, so using strawberry.field on that field won’t be useful,
since it is meant to be used to change information about a field that is exposed
in the GraphQL schema.
How to fix this error#
You can fix this error by either removing the strawberry.Private annotation or
by removing the strawberry.field usage. If you need to specify a default value
using default_factory you can use dataclasses.field instead of
strawberry.field. For example:
import strawberry
import dataclasses
@strawberry.type
class Query:
name: str
tags: strawberry.Private[str] = dataclasses.field(default_factory=list)
schema = strawberry.Schema(query=Query)