Python 错误在哪里????KeyError:';开始日期';

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

我没有在GET请求中添加任何正文参数(开始日期、结束日期),应该使用else语句,但出现了奇怪的错误,所以出现了问题

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
,因为即使
开始日期
不存在,它将返回
“结束日期”
,第二个参数是默认值,而不是将要检查的另一个键。