Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.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
Django APIView停止另一个视图的工作_Django_Django Views - Fatal编程技术网

Django APIView停止另一个视图的工作

Django APIView停止另一个视图的工作,django,django-views,Django,Django Views,我有以下用于获取JSON数据的urlpatterns和APIViews。除了最后一个“污染物每日平均值”之外,它们都正常工作并返回数据。当我删除“site_daily_means”的视图时,“pollutant_daily_means”返回它应该返回的数据 如果我只删除上面的“site\u daily\u means”,那么它仍然不起作用,所以它一定与site\u daily\u means视图有关 url(r'^api/daily-means/$', views.daily_means.as_

我有以下用于获取JSON数据的urlpatterns和APIViews。除了最后一个“污染物每日平均值”之外,它们都正常工作并返回数据。当我删除“site_daily_means”的视图时,“pollutant_daily_means”返回它应该返回的数据

如果我只删除上面的“site\u daily\u means”,那么它仍然不起作用,所以它一定与site\u daily\u means视图有关

url(r'^api/daily-means/$', views.daily_means.as_view(), name='daily_means'),
url(r'^api/daily-means/(?P<url>\w+)/$', views.site_daily_means.as_view()),
url(r'^api/daily-means/(?P<poll>\w+d+)/', views.pollutant_daily_means.as_view()),

class daily_means(APIView):
    def get(self, request):
        means = DailyMean.objects.all()
        serializer = DailySerializer(means, many=True)
        return Response(serializer.data)

class site_daily_means(APIView):
    def get(self, request, url):
        means = DailyMean.objects.filter(url=url)
        serializer = DailySerializer(means, many=True)
        return Response(serializer.data)

class pollutant_daily_means(APIView):
    def get(self, request, poll):
        means = DailyMean.objects.filter(poll=poll)
        serializer = DailySerializer(means, many=True)
        return Response(serializer.data)
url(r'^api/daily-means/$,views.daily\u-means.as\u-view(),name='daily\u-means'),
url(r'^api/daily means/(?P\w+/$),views.site_daily_means.as_view()),
url(r'^api/daily means/(?P\w+d+)/,views.pollutant_daily_means.as_view()),
班级日平均值(APIView):
def get(自我,请求):
means=dailyman.objects.all()
序列化程序=DailySerializer(表示多个=真)
返回响应(serializer.data)
课堂现场\每日\指(APIView):
def get(自我、请求、url):
means=dailyman.objects.filter(url=url)
序列化程序=DailySerializer(表示多个=真)
返回响应(serializer.data)
类别污染物日平均值(APIView):
def get(自我、请求、轮询):
means=dailyman.objects.filter(poll=poll)
序列化程序=DailySerializer(表示多个=真)
返回响应(serializer.data)

任何人都可以从上面的URL和视图中看到这方面的明确原因吗?

任何匹配
(?p\w+d+)
的内容都将首先由
(?p\w+
匹配,因此
站点的日常视图将运行

您可以通过更改
污染物\u daily\u意思为
的url模式来解决此问题,例如:

url(r'^api/daily-means/poll/(?P<poll>\w+d+)/', views.pollutant_daily_means.as_view()),
url(r'^api/daily-means/poll/(?P\w+d+/),views.pollutant_-daily_-means.as_-view()),
请注意,在这种情况下,
\w+\d+
可能是不必要的。您可以将其简化为
\w+
,因为您已经在
poll
字段上筛选了
dailyman