Django URL "contains" 一些字符串?
Django URL "contains" some string?
如何检查我的 URL 是否包含一些字符串?
url(r'^search/.*callback.*$', 'event_search_jsonp', {}, 'event_search_jsonp'),
无效!如果我的 url - http://127.0.0.1:8000/api/search/?callback=123
中有回调,Django 不会使用 event_search_jsonp 视图
编辑 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)
Django URL 不包含查询字符串,即 ?
之后的位。您需要在您的视图中进行测试:
def event_search_jsonp(request):
if 'callback' in request.GET:
# do_something
编辑
这不起作用,因为 class 级别的属性是在导入时定义的,而不是在 运行 时定义的。您不需要在那里进行测试,而是需要定义 get_renderers
方法。类似于:
class SearchView(APIView):
def get_renderers(self):
if 'callback' in self.request.GET:
return JSONPRenderer()
else:
return JSONRenderer()
如何检查我的 URL 是否包含一些字符串?
url(r'^search/.*callback.*$', 'event_search_jsonp', {}, 'event_search_jsonp'),
无效!如果我的 url - 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)
Django URL 不包含查询字符串,即 ?
之后的位。您需要在您的视图中进行测试:
def event_search_jsonp(request):
if 'callback' in request.GET:
# do_something
编辑
这不起作用,因为 class 级别的属性是在导入时定义的,而不是在 运行 时定义的。您不需要在那里进行测试,而是需要定义 get_renderers
方法。类似于:
class SearchView(APIView):
def get_renderers(self):
if 'callback' in self.request.GET:
return JSONPRenderer()
else:
return JSONRenderer()