最近几天,我读了太多的graphql,以至于我再也看不到森林里的树木了。
此人一开始得到的结果几乎正是我想要的(他的问题,而不是他的解决方案),但似乎很多代码已被弃用,我似乎无法使其正常工作: {3}}
我有一堆返回的容器。所有容器中都有每天的数量。我只想退还某天的金额。
此刻,我确实返回了这些结果(天),但其他所有结果(天)也都返回了Null值。
当前行为:
{
"data": {
"listProductcontainers": [
{
"id": "1",
"productid": {
"productid": "CBG2",
"processedstockamountsSet": [
{
"timeStampID": {
"id": "2"
},
"id": "77745",
"prodName": {
"productid": "CBG2"
}
},
{
"timeStampID": null, <--------
"id": "89645",
"prodName": {
"productid": "CBG2"
}
},
{
"timeStampID": null, <--------
"id": "89848",
"prodName": {
"productid": "CBG2"
}
},
// ...
请求的行为:(所有不带'Null'的值都不应返回)
{
"data": {
"listProductcontainers": [
{
"id": "1",
"productid": {
"productid": "CBG2",
"processedstockamountsSet": [
{
"timeStampID": {
"id": "2"
}
我正在运行的查询如下:
query{
listProductcontainers{
id
productid{
productid
processedstockamountsSet{
timeStampID(id:2){
id
}
id
prodName{
productid
}
}
}
}
}
以下是结果的相关代码:
class TimeStampType(DjangoObjectType):
class Meta:
model = TimeStamp
class ProcessedStockAmountsType(DjangoObjectType):
timeStampID = graphene.Field(TimeStampType, id=graphene.Int())
class Meta:
model = ProcessedStockAmounts
def resolve_timeStampID(self, info, **kwargs):
id = kwargs.get('id')
if self.timeStampID.id == id:
return self.timeStampID
class ProductcontainersType(DjangoObjectType):
class Meta:
model = Productcontainers
class ProductlistType(DjangoObjectType):
class Meta:
model = Productlist
class Query(graphene.ObjectType):
list_productcontainers = graphene.List(ProductcontainersType)
def resolve_list_productcontainers(self, context, **kwargs):
return Productcontainers.objects.all()
到目前为止,我几乎已经阅读了石墨烯中的所有内容,但是,即使您有一个反映我要执行的操作的链接,我也将不胜感激。
我的最终选择是进行两次调用,以获取所有容器ID,并再次调用以获取特定日期的所有金额(带有容器ID),并使用2个for循环将金额添加到对应的容器...:(