我有一个API,有两个路由some_resource/
和some_resource/<id>
,我想实现普通的CRUD操作(列表、检索、创建、更新、删除)。但是,我不想使用ViewSet,因为我想为每个视图设置一个类。因此,为了清楚起见,我需要手动设置路由。:
class SomeResourceRetrieveView(APIView):
def get(self, request, pk, *args, **kwargs):
...
class SomeResourceListView(APIView):
def get(self, request, *args, **kwargs):
...
class SomeResourceCreateView(APIView):
def post(self, request, *args, **kwargs):
...
在www.example.com中urls.py,它看起来像这样
url_patterns = [
path("some_resource/", InvitationTeamAccessListAPI.as_view(), name="some-resource-list"),
path("some_resource/", InvitationTeamAccessCreateAPI.as_view(), name="some-resource-create"),
path("some_resource/<int:pk>", InvitationTeamAccessRetrieveAPI.as_view(), name="some-resource-retrieve"),
]
但是当我在some_resource/
上使用POST时,我得到了一个405。我想django在第一个匹配的路径上停止了,并且没有找到post的实现。有没有一种方法可以把我所有的视图插入到同一个模式中,但是把它们作为单独的类来保存呢?
1条答案
按热度按时间sirbozc51#
您可以使用ViewSets
给予看:
以及www.example.com中urls.py
然后使用单个url路径可以执行多个操作
GET:some_resource/将显示邀请团队访问的
GET:some_resource/1/将显示单个邀请团队访问的详细信息
POST:some_resource/将创建新的邀请团队访问权限
我还阅读了ModelVieset