![](/img/trans.png)
[英]mutation error, Unknown argument \“barcode\” on field \“createProduct\” of type \“Mutation\” - django
[英]GraphQL-"Unknown argument \"country\" on field \"allNews\" of type \"Query\".",
GraphQL 新手在這里。 所以我試圖使用石墨烯在 Django 中編寫一個模式,它將國家參數作為字符串和時間參數作為字符。 查詢與“時間”參數一起工作正常,但每當我添加“國家”參數時。 它在"Unknown argument \\"country\\" on field \\"allNews\\" of type \\"Query\\".",
引發以下錯誤"Unknown argument \\"country\\" on field \\"allNews\\" of type \\"Query\\".",
這是我的架構和類型:
類型:
class NewsType(DjangoObjectType):
class Meta:
model = News
fields = ('id', 'site_name', 'title', 'link', 'content', 'thumbnail', 'status', 'upvote', 'downvote', 'published_date',
'paper', 'created_date')
filter_fields = ['site_name', 'status', 'country']
interfaces = (CustomNewsNode, )
vote_status = DjangoFilterConnectionField(UserVoteNewsType)
def resolve_vote_status(self, info, user_id):
return self.uservotenews_set.filter(user_id=user_id)
架構:
class NewsTypeFilter(django_filters.FilterSet):
class Meta:
model = News
fields = ['id', 'site_name', 'title', 'link', 'content', 'thumbnail', 'status', 'upvote', 'downvote', 'published_date',
'paper', 'created_date']
class Query(graphene.ObjectType):
all_news = DjangoFilterConnectionField(
NewsType, filterset_class=NewsTypeFilter, time=graphene.String())
def resolve_all_news(self, info, **kwargs):
print(kwargs['country'])
env = environ.Env()
environ.Env.read_env()
HOURS_AFTER_NEWS_VISIBLE = env('HOURS_AFTER_NEWS_VISIBLE')
timeDiff = datetime.now() - timedelta(hours=int(HOURS_AFTER_NEWS_VISIBLE))
if kwargs['time']: # if user clicks on sort by button
if(kwargs['time'] == 'd'):
time = 1
elif (kwargs['time'] == 'w'):
time = 7
elif (kwargs['time'] == 'm'):
time = 30
elif (kwargs['time'] == 'y'):
time = 365
else:
time = 1000
end_of_give_time_period = datetime.now(
) - timedelta(days=int(HOURS_AFTER_NEWS_VISIBLE))
start_of_given_time_period = end_of_give_time_period - \
timedelta(days=time)
allNews = News.objects.order_by('created_date').filter(status=True,
created_date__lte=end_of_give_time_period, created_date__gte=start_of_given_time_period).order_by('-upvote')
else:
allNews = News.objects.order_by(
'-created_date').filter(status=True).filter(created_date__lte=timeDiff)
if 'country' in kwargs:
countryId = Country.objects.filter(
name=kwargs['country'][0]).values_list('pk', flat=True)
allNews = allNews.filter(country__in=[countryId[0]])
return allNews
但是每當我輸入查詢時,它都會返回以下錯誤:
詢問:
query{
allNews (time :"w", country: "Bangladesh") {
edges{
node{
title
upvote
createdDate
}
}
}
}
輸出:
{
"errors": [
{
"message": "Unknown argument \"country\" on field \"allNews\" of type \"Query\".",
"locations": [
{
"line": 2,
"column": 23
}
]
}
]
}
首先,我從我的架構中去NewsTypeFilter
,因為它返回的與我的NewsType
相同。 然后我在NewsType
上添加了country
和其他字段。 這幾乎解決了問題。
我猜首先添加 filterType 造成了問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.