我写了@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'))
答案 0 :(得分:1)
路由器仅适用于ViewSets
,而不适用于APIView
,也不适用于基于功能的视图。
您需要编写一个显式网址,就像使用常规Django视图一样。