首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AttributeError:类型对象没有属性'get_extra_actions‘

AttributeError:类型对象没有属性'get_extra_actions‘
EN

Stack Overflow用户
提问于 2021-12-16 11:06:48
回答 3查看 3.3K关注 0票数 1

我有一个小型的web应用程序,我正在尝试为它开发一个API。我在一个名为UserPlatforms的应用程序中遇到了一个我称之为平台的模型的问题。同样的错误:AttributeError: type object 'UserPlatformList' has no attribute 'get_extra_actions'

models.py:

代码语言:javascript
复制
class Platform(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL,
                             related_name='platform_owned',
                             on_delete=models.CASCADE,
                             default=10)

    PLATFORM_CHOICES = [platform_x, platform_y]

    platform_reference = models.CharField(max_length=10, choices=PLATFORM_CHOICES, default='platform_x')
    platform_variables = models.JSONField()

api/views.py

代码语言:javascript
复制
from .serializers import PlatformSerializer
from rest_framework import generics, permissions
from userplatforms.models import Platform

class UserPlatformList(generics.ListCreateAPIViewAPIView):
    queryset = Platform.objects.all()
    permisson_classes = [permissions.IsAuthenticatedOrReadOnly]
    serializer_class = PlatformSerializer

api/序列化器.api

代码语言:javascript
复制
from rest_framework import serializers
from userplatforms.models import Platform
    
class PlatformSerializer(serializers.HyperlinkedModelSerializer):
        class Meta:
            model = Platform
            fields = '__all__'

api/urls.py

代码语言:javascript
复制
from django.urls import path, include
from . import views
from rest_framework import routers

router = routers.DefaultRouter()
router.register(r'userplatforms/', views.UserPlatformList, 'userplatforms')
router.register(r'userfiles/', views.UserFileList, "userfiles")
router.register(r'users/', views.UserList, "user")



urlpatterns = [
    path("^", include(router.urls))
]
EN

Stack Overflow用户

发布于 2022-04-26 09:51:16

api/views.py

代码语言:javascript
复制
from .serializers import PlatformSerializer
from rest_framework import generics, permissions
from userplatforms.models import Platform

class UserPlatformList(generics.ListCreateAPIViewAPIView):
    queryset = Platform.objects.all()
    permisson_classes = [permissions.IsAuthenticatedOrReadOnly]
    serializer_class = PlatformSerializer

对于ListCreateAPIView继承,ListCreateAPIViewAPIView应该是

如果使用mixins创建视图集,则应该如下所示

代码语言:javascript
复制
from .serializers import PlatformSerializer
from rest_framework import generics, permissions, viewsets
from userplatforms.models import Platform

class UserPlatformList(generics.ListModelMixin, viewsets.GenericViewSet):
    queryset = Platform.objects.all()
    permisson_classes = [permissions.IsAuthenticatedOrReadOnly]
    serializer_class = PlatformSerializer

这样,路由器就可以用来设置used模式。

api/urls.py

代码语言:javascript
复制
from django.urls import path, include
from . import views
from rest_framework import routers

router = routers.DefaultRouter()
router.register(r'userplatforms/', views.UserPlatformList, 'userplatforms')
router.register(r'userfiles/', views.UserFileList, "userfiles")
router.register(r'users/', views.UserList, "user")


urlpatterns = router.urls
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70377923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档