2016-07-07 69 views
1

我寫了一個@api_view,但rest_framework不想註冊它。所以我在api/main-filter/上發送請求時會得到404。爲什麼?REST框架:404上GET

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

路由器只能與01合作,而不是APIView或基於功能的視圖。

您需要像使用常規Django視圖一樣編寫顯式url。

+0

仍然不能正常工作 – Viktor

+0

那麼,您的網址如何看起來像現在?什麼讓你說它不起作用?還有404? – Linovia

+0

我已經修復:) – Viktor