python - REST框架: 404 on GET

标签 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'))

最佳答案

路由器仅适用于 ViewSets,不适用于 APIView 或基于函数的 View 。

您需要编写一个显式 url,就像处理常规 Django View 一样。

关于python - REST框架: 404 on GET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38238983/

相关文章:

python-3.x - 如何捕获通过 REST API 执行的 Saltstack `cmd.run` 的返回码

python - 如何绘制等长的动态线段

python - 执行 numpy.dot() 时获取值错误

Python。函数旁边的另一个括号

django-allauth:让用户断开社交网络

javascript - AJAX 调用 python 函数不会从 Django 中的 JavaScript 函数发生

python - 在 Django admin 中将模型字段显示为只读

java - Rest WS 部分 JSON 响应

java - URIBuilder 和列表查询参数

python - 不了解切片在 python 中的作用