jmn*_*jmn 6 django graphql graphene-python
如何使用 graphene-django 在 GraphQL 中创建自定义参数?
我目前在 schema.py 中有此配置:
class Post(DjangoObjectType):
class Meta:
model = FeedPost
interfaces = (graphene.relay.Node,)
filter_fields = ['id']
class Query(graphene.ObjectType):
post = graphene.Node.Field(Post)
def resolve_post(self, info, **kwargs):
username = kwargs.get('username')
u = User.objects.get(username=username)
users_sources = FeedSource.objects.filter(user=u)
return FeedPost.objects.filter(feed__feedsource__in=users_sources).annotate(
source_title=F('feed__feedsource__title')
)
schema = graphene.Schema(query=Query)
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何使“用户名”成为“post”的实际 GraphQL 查询中的必需参数。
不确定以前是否支持这一点,但我正在使用graphene-django>=2.15,<2.16并且我可以确认以下语法按预期工作:
class Query(graphene.ObjectType):
# Notice the username argument
post = graphene.Field(Post, username=graphene.String(required=True, default=None))
def resolve_post(self, root, info, username): # Notice: the username argument spelled exactly as before
u = User.objects.get(username=username)
users_sources = FeedSource.objects.filter(user=u)
return FeedPost.objects.filter(feed__feedsource__in=users_sources).annotate(
source_title=F('feed__feedsource__title')
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1144 次 |
| 最近记录: |