5.7.通过Mixin+ViewSet实现API

goods/views.py

class GoodsCategoryViewSet(ListModelMixin, GenericViewSet):
    """
    获取商品类型列表
    """
    queryset = GoodsCategory.objects.all()
    serializer_class = GoodsCategorySerializer
    ...

goods/urls.py

from django.urls import path

from goods.views import GoodsListView, GoodsCategoryViewSet

goods_category_list = GoodsCategoryViewSet.as_view({
    'get': 'list',
})


urlpatterns = [
    ...
    path('category/', goods_category_list, name='goods_category'),
]

通过routers简化url的配置

from django.urls import path, include
from rest_framework.routers import DefaultRouter

from goods.views import GoodsListView, GoodsCategoryViewSet

router = DefaultRouter()
router.register(r'category', GoodsCategoryViewSet)

urlpatterns = [
    ...
    path('category/', include(router.urls), name='goods_category'),
]

Last updated

Was this helpful?