我写了一个@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'))
最佳答案
路由器仅适用于 ViewSets
,不适用于 APIView
或基于函数的 View 。
您需要编写一个显式 url,就像处理常规 Django View 一样。
关于python - REST框架: 404 on GET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38238983/