如何检查我的网址是否包含某些字符串?
url(r'^search/.*callback.*$', 'event_search_jsonp', {}, 'event_search_jsonp'),
不起作用!如果我的网址中有回调,Django不会使用event_search_jsonp视图 - http://127.0.0.1:8000/api/search/?callback=123
编辑1
我有这样的事情以及如何在这里获得request
?
class SearchView(APIView):
if 'callback' in self.request.GET:
renderer_classes = (JSONPRenderer, )
else:
renderer_classes = (JSONRenderer, )
def get(self, request, format=None, *args, **kwargs):
events = Event.objects.all().order_by("-id")[:10]
serializer = EventSerializer(events, many=True)
return Response(serializer.data)
答案 0 :(得分:3)
Django URL不包含查询字符串,即?
之后的位。您需要在视图中进行测试:
def event_search_jsonp(request):
if 'callback' in request.GET:
# do_something
修改强>
这不起作用,因为类级属性是在导入时定义的,而不是在运行时定义的。您需要定义get_renderers
方法,而不是在那里进行测试。类似的东西:
class SearchView(APIView):
def get_renderers(self):
if 'callback' in self.request.GET:
return JSONPRenderer()
else:
return JSONRenderer()