Django/Grapheneバックエンドの設定でいくつかのビデオ項目があります。各動画アイテムは1人の所有者にリンクされています。 Reactアプリケーションでは、現在のユーザーが所有するすべてのビデオと、現在のユーザーが所有していないすべてのビデオをGraphQLで照会したいと考えています。Graphene/Django(GraphQL):特定のフィルタに一致するノードを除外するためにクエリ引数を使用する方法は?
私は、次のGraphQlクエリを実行し、クライアント側でフィルタリングすることができます:私はむしろ、フィルタパラメータは、直接私のバックエンドに関連するデータを尋ねると2つのクエリを持っているでしょう
query AllScenes {
allScenes {
edges {
node {
id,
name,
owner {
name
}
}
}
}
}
。ような何か:
query AllScenes($ownerName : String!, $exclude: Boolean!) {
allScenes(owner__name: $ownerName, exclude: $exclude) {
edges {
node {
id,
name,
owner {
name
}
}
}
}
}
は、私はまだ、私はちょうど私のバックエンド側の私のexclude
引数を取得することはできませんownerName = currentUserName
とexclude = True/False
で照会します。ここで私は私のschema.pyファイルにしようとしているコードです:
from project.scene_manager.models import Scene
from graphene import ObjectType, relay, Int, String, Field, Boolean, Float
from graphene.contrib.django.filter import DjangoFilterConnectionField
from graphene.contrib.django.types import DjangoNode
from django_filters import FilterSet, CharFilter
class SceneNode(DjangoNode):
class Meta:
model = Scene
class SceneFilter(FilterSet):
owner__name = CharFilter(lookup_type='exact', exclude=exclude)
class Meta:
model = Scene
fields = ['owner__name']
class Query(ObjectType):
scene = relay.NodeField(SceneNode)
all_scenes = DjangoFilterConnectionField(SceneNode, filterset_class=SceneFilter, exclude=Boolean())
def resolve_exclude(self, args, info):
exclude = args.get('exclude')
return exclude
class Meta:
abstract = True
マイカスタムSceneFilter
使用されているが、私はそれにexclude
引数を渡す方法がわかりません。 (私はresolverを適切に使用しているとは思わない)。その問題に関するどんな助けも非常に高く評価されるでしょう!グラフェンジャンゴ1.0への切り替え