REST框架:GET上的404

时间:2016-07-07 06:42:13

标签: python django rest django-rest-framework

我写了@api_view,但rest_framework不想注册。所以我在api/main-filter/发送请求时得到404。为什么呢?

rest.py

@api_view(['GET'])
def main_filter_options(request):
    r = {
        'regions': models.Region.objects.filter(city__category__isnull=False),
        'categories': models.Category.objects.filter(level=0),
        'years': tuple((str(n), str(n)) for n in range(2016, datetime.now().year))
    }
    return response.Response(r)

api.py

router = DefaultRouter()
router.register(r'main-filter', rest.main_filter_options, base_name='main-filter')
urlpatterns = router.urls

urls.py

url(r'^api/', include('activities.api')),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))

1 个答案:

答案 0 :(得分:1)

路由器仅适用于ViewSets,而不适用于APIView,也不适用于基于功能的视图。

您需要编写一个显式网址,就像使用常规Django视图一样。