【问题标题】:Django Rest Framework - Attribute Error: 'function' has no attribute 'get_extra_actions'Django Rest Framework - 属性错误:“函数”没有属性“get_extra_actions”
【发布时间】:2021-07-15 19:11:13
【问题描述】:

大家。

所以我正在学习 django rest 框架以及如何在 Heroku 上进行部署。我在我的应用程序中遇到了这个问题,我不知道如何解决它。

views.py:

from rest_framework import viewsets, status
from rest_framework.decorators import api_view
from rest_framework.views import Response

from api import models, serializers
from api.integrations.github import GithubApi


@api_view(['GET'])
class LibrarynViewSet(viewsets.ViewSet):

    queryset = models.Library.objects.all()
    serializer_class = serializers.Library(queryset, many=True)
    lookup_field = "name"

    def retrieve(self, request, login=None):
        return Response(serializers.data)

routes.py:

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

from api import views

routers = DefaultRouter()
routers.register("organization", views.LibraryViewSet, basename="Library")

urlpatterns = [
    path("", include(routers.urls)),
]

错误:

extra_actions = viewset.get_extra_actions()
AttributeError: 'function' object has no attribute 'get_extra_actions'

正如我所说,我正在学习,所以我不知道如何解决它。

如果您能帮助我,我将不胜感激。非常感谢。

【问题讨论】:

    标签: python django api heroku django-rest-framework


    【解决方案1】:

    您需要删除@api_view,它与视图集不兼容以管理您想要使用的http方法,您应该使用http_method_names属性:

    class LibrarynViewSet(viewsets.ViewSet):
    
        http_method_names = ['get',] 
    

    【讨论】:

    • 尼基塔,今天你是我的英雄!非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2020-07-03
    • 2018-09-18
    • 2011-10-13
    • 2020-08-21
    • 1970-01-01
    • 2016-01-11
    • 2020-08-21
    • 2020-10-03
    相关资源
    最近更新 更多