Python url查询中的空格未在django中解码
我有以下URL查询-Python url查询中的空格未在django中解码,python,django,django-rest-framework,Python,Django,Django Rest Framework,我有以下URL查询- http://localhost:8000/api/passenger-census/?public_location_description==SW%206th%20&%20Salmon 但是,这些空间没有被解码,django解析的结果查询是 GET /api/passenger-census/?public_location_description=SW%206th%20&%20Salmon 它返回一个null,因为要找到的字符串是“SW 6th&S
http://localhost:8000/api/passenger-census/?public_location_description==SW%206th%20&%20Salmon
但是,这些空间没有被解码,django解析的结果查询是
GET /api/passenger-census/?public_location_description=SW%206th%20&%20Salmon
它返回一个null
,因为要找到的字符串是“SW 6th&Salmon”
Django代码
views.py
-
class PassengerCensusViewSet(viewsets.ModelViewSet):
queryset = PassengerCensus.objects.all()
serializer_class = PassengerCensusSerializer
filter_backends = (SearchFilter,DjangoFilterBackend,OrderingFilter,)
search_fields = ('route_number', 'direction','service_key','stop_seq',
'location_id','public_location_description',)
filter_fields = ('summary_begin_date','route_number','direction','service_key','stop_seq','location_id',
'public_location_description','ons','offs','x_coord','y_coord','geom_2913','geom_4326',)
ordering_fields = '__all__'
serializer.py
class PassengerCensusSerializer(serializers.ModelSerializer):
class Meta:
model = PassengerCensus
fields = '__all__'
这里有什么问题?空格不是问题,你的符号是问题所在。 符号AND是不同参数之间的分隔符,这些参数是名称=值对 分析查询字符串会导致:
public\u location\u description的名称
,值为=SW%206th%20
和
%20Salmon
没有值
用%26
(并删除多余的“=”)替换您的“与”,以获得以下url:
然后再试一次空格不是问题,你的符号才是问题所在。 符号AND是不同参数之间的分隔符,这些参数是名称=值对 分析查询字符串会导致:
public\u location\u description的名称
,值为=SW%206th%20
和
%20Salmon
没有值
用%26
(并删除多余的“=”)替换您的“与”,以获得以下url:
然后再试一次您有多确定问题不是未替换的符号和?您的参数编码错误。查询字符串参数(与路径元素相反)应通过将空格替换为
+
,而不是%20
,来进行编码。您有多大把握问题不是未替换的符号和?您的参数编码错误。查询字符串参数(与路径元素相反)应通过将空格替换为+
,而不是%20
来编码。当用户在查询参数中输入“&”时,如何让Django自动转义一个符号?URL不是为人工输入而创建的。这就是HTML表单的用途。当用户在查询参数中输入“&”时,如何让Django自动转义一个符号和?URL不是人为输入的。这就是HTML表单的用途。