一、在有默认(create、list、retrieve、update、destroy)接口时自定义接口
class IterationsViewSet(MyModelViewSet):
queryset = uc_iterations.objects.all().order_by('id')
serializer_class = IterationsSerializer
pagination_class = DIYPagination
filter_backends = (filters.SearchFilter, DjangoFilterBackend, filters.OrderingFilter,)
search_fields = ('iterations_name','personnel')
filterset_fields = ('project_id',)
authentication_classes = [MyAutheentication, ]
def getAllIterations(self, request, *args, **kwargs):
data = list(uc_iterations.objects.all().values("id","iterations_name"))
return APIRespones('1000','ok',True,data)
def destroy(self, request, *args, **kwargs):
id = kwargs.get('pk')
b = uc_checklist.objects.filter(iterations_id=id).values('id')
if b.exists():
return APIRespones('1000', '存在关联checklist数据,不可删除哟~', True)
else:
uc_iterations.objects.filter(pk=id).delete()
return APIRespones('1000', '删除成功,欧耶~', True)
路由注意事项:
路由末尾没有 "/" r'^iterations/list$',
router = DefaultRouter()
router.register('projects', caseviews.ProjectsViewSet)
router.register('iterations', caseviews.IterationsViewSet)
router.register('usecases', caseviews.UsecasesViewSet)
router.register('checklist',checklistviews.ChecklistViewSet)
router.register('report', reportviews.ReportViewSet)
router.register('reportcc', emailCc.EmailCcViewSet)
urlpatterns = [
path('', include(router.urls)),
url(r'^checkuri/$', checkUri.as_view({"post": "post"})),
url(r'^iterations/report/creat/$', IterationReportViewSet.as_view({"post": "post"})),
url(r'^iterations/report/handleemail/$', IterationReportViewSet.as_view({"get": "getemail","post":"sendemail"})),
url(r'^usecases/view_add$', UsecasesViewSet.as_view({"post":"view_add"})),
url(r'^iterations/list$', caseviews.IterationsViewSet.as_view({"get":"getAllIterations"})),
]
urlpatterns += router.urls
二、在没有默认(create、list、retrieve、update、destroy)接口时自定义接口
class TapdproductView(APIView):
authentication_classes = [MyAutheentication, ]
def get(self,request):
id=request.query_params.getlist("department_id",0)
be=request.query_params.get("begintime",0)
en=request.query_params.get("endtime",0)
return APIRespones(status=1000, data_msg=productout.pr_story_count(department_id=id, begintime=be, endtime=en))
路由注意事项:
路由末尾有 "/" url(r'^product/$', tapdviews.TapdproductView.as_view())
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)