Django的REST框架嵌套的路線我想實現這樣的路線:沒有PK
/items - list of all items.
/items/types - list of all item types
我看着DRF-巢-擊潰,但嵌套網址期待{} PK要傳遞。有沒有什麼好的方法來實現我想要的?
Django的REST框架嵌套的路線我想實現這樣的路線:沒有PK
/items - list of all items.
/items/types - list of all item types
我看着DRF-巢-擊潰,但嵌套網址期待{} PK要傳遞。有沒有什麼好的方法來實現我想要的?
如果您不需要pk
,那麼你的路徑應該是/types
不/items/types
您可能需要看一看這太問題關於REST嵌套資源:
隨着ID /items/1/types
意味着像「顯示屬於ID爲1的項目的所有類型」。鑑於/items/types
沒有意義,因爲資源類型不能屬於所有項目資源。
但是,您可以使用@list_route
修飾器(例如,修飾器)將其作爲ViewSet的自定義操作來實現它。
class MyViewSet(viewsets.ModelViewSet):
...
@list_route()
def types(self, request):
return Response(some_way_to_list_types())
...
雖然它可能不是一種RESTful方式。
現在它以這種方式實現。但是我認爲讓項目的類型子地址更合乎邏輯,因爲它們是項目的類型而沒有別的。 – mcferden
如果它們是項目的類型(項目的子資源),那意味着您需要添加'pk'。如果我明白你所需要的是'/ types'而不是'/ items//types' –
ettanany