gpt4 book ai didi

ModelViewSet 中的 django-rest 自定义 url

转载 作者:行者123 更新时间:2023-12-02 11:43:15 27 4
gpt4 key购买 nike

我在向 django-rest-framework 中的 ModelViewSet 添加自定义 URL 时遇到问题。这是我的主要 urls.py 的示例

router = routers.DefaultRouter()
router.register(r'post', PostViewSet)

urlpatterns = patterns('',
url(r'^api/', include(router.urls)),
)

我的模型 View 集看起来像

class PostViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows users to be viewed or edited.
"""
queryset = Post.objects.all()
serializer_class = PostSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly, IsOwnerOrReadOnly,)
search_fields = ('created')

def pre_save(self, obj):
obj.user = self.request.user


#
# based on the post type this will decide which serializer to use for the data
def get_serializer_class(self):
#
# default is the Text role serializer
return PostSerializer

这对于像这样的网址非常有用

 /api/post/

我希望能有一个固定的日子,比如

/api/post/yyyy/mm/dd/

或者我应该使用类似的东西

/api/post/?year=&month=&day=

最佳答案

将列表方法作为单独的 View 拉出:

post_list = PostViewSet.as_view({'get': 'list'})

然后像平常一样将其映射到基于日期的查找 URL,设置年、月和日的参数。

get_queryset 中,您可以检查是否设置了这些 kwargs,如果设置了,则过滤查询集。

关于ModelViewSet 中的 django-rest 自定义 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18194603/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com