如何解决AttributeError: 'function' 对象在函数视图中没有属性 'get_extra_actions'
views.py
@api_view(['GET','POST'])
def poll(request):
if request.method == "GET":
question = Question.objects.all()
serializer = QuestionSerializer(question,many=True)
return JsonResponse(serializer.data,safe=False)
elif request.method == "POST":
data = JsonParser.parse(request.POST)
serializer = QuestionSerializer(data=data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data,status=201)
return JsonResponse(serializer.errors,status=400)
api_urls.py
from django.contrib import admin
from django.urls import path,include
from . import views
from rest_framework import routers
router = routers.DefaultRouter()
router.register(r'poll',views.poll,basename='poll')
urlpatterns = [
path('poll/',include(router.urls)),]
File "C:\Users\azhar\.virtualenvs\Django_and_Rest-YRrszWnq\lib\site-packages\rest_framework\routers.py",line 152,in get_routes
extra_actions = viewset.get_extra_actions()
AttributeError: 'function' object has no attribute 'get_extra_actions'
关于如何在类 View 中使用 get_extra_actions 的许多解决方案,但我想在投票功能中使用它,请帮助我
解决方法
poll
是 function based view
,而不是 viewset
。所以你不能把它注册到路由器上。可以直接在视图中使用:
urlpatterns = [
path('poll/',views.poll),]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。