Python 错误在哪里????KeyError:';开始日期';
我没有在GET请求中添加任何正文参数(开始日期、结束日期),应该使用else语句,但出现了奇怪的错误,所以出现了问题Python 错误在哪里????KeyError:';开始日期';,python,django,Python,Django,我没有在GET请求中添加任何正文参数(开始日期、结束日期),应该使用else语句,但出现了奇怪的错误,所以出现了问题 class MoviesTop(APIView): def get(self, request): if request.data.get('start_date', 'end_date'): start_timestamp = request.data['start_date'] end_timesta
class MoviesTop(APIView):
def get(self, request):
if request.data.get('start_date', 'end_date'):
start_timestamp = request.data['start_date']
end_timestamp = request.data['end_date']
topMovie = Movie.objects.annotate(
num_comments=Count(
'Comments',
filter=Q(Comments__pub_date__range=(
start_timestamp, end_timestamp))
)
).order_by('-num_comments')
else:
topMovie=Movie.objects.annotate(
num_comments=Count('Comments')).order_by('-num_comments')
serializer=MoviesTopSerializator(topMovie, many=True)
return Response(serializer.data)
request.data.get('start\u date','end\u date')
将具有真实性True
,即使start\u date
不存在。它将返回“结束日期”
,第二个参数是默认值,而不是将要检查的另一个键
因此,请检查以下各项:
if 'start_date' in request.data and 'end_date' in request.data:
# …
如果request.data中的“开始日期”和request.data中的“结束日期”:
#…
请求.data.get('start\u date','end\u date')
将具有真实性True
,即使开始日期
不存在。它将返回“结束日期”
,第二个参数是默认值,而不是将要检查的另一个键
因此,请检查以下各项:
if 'start_date' in request.data and 'end_date' in request.data:
# …
如果request.data中的“开始日期”和request.data中的“结束日期”:
#…
哪一行生成了错误?因为request.data
没有键start\u date
。请注意request.data.get('start\u date','end\u date')
将具有真实性True
,因为即使start\u date
不存在,它也将返回end\u date'
,第二个参数是默认值,而不是将要检查的另一个键。哪一行生成错误?因为请求.data
没有键开始日期
。请注意请求.data.get('start\u date','end\u date')
将具有真实性True
,因为即使开始日期
不存在,它将返回“结束日期”
,第二个参数是默认值,而不是将要检查的另一个键。