Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex “Django URL”;包括「;一些绳子?_Regex_Django_Django Urls - Fatal编程技术网

Regex “Django URL”;包括「;一些绳子?

Regex “Django URL”;包括「;一些绳子?,regex,django,django-urls,Regex,Django,Django Urls,如何检查我的URL是否包含一些字符串 url(r'^search/*callback.*$','event\u search\u jsonp',{},'event\u search\u jsonp'), 不行!如果我的url中有回调,Django不会使用事件搜索jsonp视图-http://127.0.0.1:8000/api/search/?callback=123 编辑1 我有这样的东西,我如何在这里获得请求 class SearchView(APIView): if 'callba

如何检查我的URL是否包含一些字符串

url(r'^search/*callback.*$','event\u search\u jsonp',{},'event\u search\u jsonp'),

不行!如果我的url中有回调,Django不会使用事件搜索jsonp视图-
http://127.0.0.1:8000/api/search/?callback=123

编辑1

我有这样的东西,我如何在这里获得
请求

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不包括querystring,它是
后面的位。您需要在您的视图中执行测试:

def event_search_jsonp(request):
    if 'callback' in request.GET:
        # do_something
编辑

这不起作用,因为类级属性是在导入时定义的,而不是在运行时定义的。您需要定义
get\u renders
方法,而不是在那里进行测试。比如:

class SearchView(APIView):
    def get_renderers(self):
        if 'callback' in self.request.GET:
            return JSONPRenderer()
        else:
            return JSONRenderer()

我使用Django REST Framework中的CBV,在设置Renderer时没有请求对象。是的,在CBV中,请求始终作为
self.request
可用。