首页 > 解决方案 > 带参数的 Django Graphene 节点接口返回所有字段

问题描述

我将参数传递给查询的以下石墨烯查询会返回所有结果,即使我的前端提供了正确的参数,它也会提供所有结果。即使有不应返回结果的数据,它仍会返回所有结果。

我有一个石墨烯类型:

class TimeStampType(DjangoObjectType):
    rowid=graphene.Int()
    class Meta:
        model = TimeStamp 
        interfaces = (Node, )
        filter_fields = {
            'year': ['exact'],
            'week': ['exact'],
            'weekDay': ['exact'],
            'shift': ['exact'],
            'time': ['exact'],
            'shortDate': ['exact'],
        }
    def resolve_rowid(self, context, **kwargs):
        return self.id

带查询:

node_timestamp = DjangoFilterConnectionField(TimeStampType)

我的查询如下所示:

query nodeTimeStamp($year:Float, $week:Float, $weekDay:Float){
  nodeTimestamp(year:$year, week:$week, weekDay:$weekDay) {
    edges{
      node{
        id
        rowid
      }
    }
  }
}

标签: djangographqlgraphene-python

解决方案


我在一天结束时发现的是,出于某种原因,我应该更改我的 Apollo 查询(不知道我看到的第一种方式的示例,也许是一些旧文档)

.watchQuery({
      variables: {$year:2018, $week:42, $weekDay:3},
      query: gql`

并删除 $ 符号,使其显示:

.watchQuery({
      variables: {year:2018, week:42, weekDay:3},
      query: gql`

所以基本上我通过不存在的变量发送变量,因此查询返回了所有数据。


推荐阅读