【问题标题】:view sets throwing pagenotfound! found Django DRF视图集抛出pagenotfound!找到 Django DRF
【发布时间】:2021-10-09 05:54:36
【问题描述】:

获取页面未找到错误,正在尝试 DRF,我正在尝试这些视图集,但到目前为止错误如前所述!

urlpatterns = [
    path('',include(router.urls)),
    path('organisation_list/',OrganisationList.as_view()),
]

路线

router = DefaultRouter()
router.register(r'list_organisation',OrganisationViewSet)




class OrganisationViewSet(ViewSet):

    permission_classes = []
    authentication_classes = []

    queryset = Organisation.objects.all()
   
    @action(detail=False, methods=['get'])
    def list_organisations(self,request,*args,**kwargs):
        print('working')
        data = self.queryset
        serializer = OrganisationSerializer(data,many=True)
        return Response(serializer.data,status=200)

错误

 "GET /list_organisation/ HTTP/1.1" 404 3548

【问题讨论】:

    标签: django django-rest-framework django-views


    【解决方案1】:

    由于视图 list_organisations 被定义为自定义操作,它的实际 url 是:

    list_organisation/list_organisations
    

    如果你想要list_organisation/,只需将视图更改为list

    class OrganisationViewSet(ViewSet):
        ...
        def list(self, request, *args, **kwargs):
            print('working')
            data = self.queryset
            serializer = OrganisationSerializer(data,many=True)
            return Response(serializer.data,status=200)
    

    【讨论】:

    • 但是url_path 是干什么用的
    • 即自定义一个自定义动作的url。默认情况下,它将是视图名称。但是无论它得到什么值,它总是在list_organisation/之后,所以像list_organisation/my_custom_url_path
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    • 2019-02-07
    • 1970-01-01
    相关资源
    最近更新 更多