Django 属性错误:';功能';对象没有属性';获得额外的行动';在函数视图中

Django 属性错误:';功能';对象没有属性';获得额外的行动';在函数视图中,django,django-rest-framework,django-forms,django-urls,django-rest-viewsets,Django,Django Rest Framework,Django Forms,Django Urls,Django Rest Viewsets,视图.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=Fal

视图.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)
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)),
]
api_url.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)
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'
关于如何在类视图中使用get_extra_操作,有很多解决方案,但我想在poll函数中使用它,请帮助我

poll
是一个,而不是一个。所以你不能把它注册到路由器上。您可以在视图中直接使用它:

urlpatterns = [
    path('poll/', views.poll),
]
poll
是一个,而不是一个。所以你不能把它注册到路由器上。您可以在视图中直接使用它:

urlpatterns = [
    path('poll/', views.poll),
]
可能重复可能重复