Mik*_*ike 8 django django-rest-framework
我在向django-rest-framework中的ModelViewSet添加自定义URL时遇到问题.这是我的主要urls.py的一个例子
router = routers.DefaultRouter()
router.register(r'post', PostViewSet)
urlpatterns = patterns('',
url(r'^api/', include(router.urls)),
)
Run Code Online (Sandbox Code Playgroud)
我的modelviewset看起来像
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
Run Code Online (Sandbox Code Playgroud)
这对于像这样的网址来说非常有用
/api/post/
Run Code Online (Sandbox Code Playgroud)
我希望得到一个固定的日子
/api/post/yyyy/mm/dd/
Run Code Online (Sandbox Code Playgroud)
或者我应该使用类似的东西
/api/post/?year=&month=&day=
Run Code Online (Sandbox Code Playgroud)
Car*_*son 11
将列表方法拉出作为单独的视图:
post_list = PostViewSet.as_view({'get': 'list'})
Run Code Online (Sandbox Code Playgroud)
然后像往常一样将此映射到基于日期的查找URL,设置年,月和日的参数.
在get_queryset你可以和检查,如果这些kwargs设置如果是这样,过滤查询集.
| 归档时间: |
|
| 查看次数: |
5423 次 |
| 最近记录: |