当前位置: 首页 > 知识库问答 >
问题:

在设置viewset时,我得到一个错误AttributeError:“function”对象没有属性“get_extra_actions”

狄侯林
2023-03-14

我正在学习DRF,现在感到有点困惑。
我像这样设置了调查视图调查序列化器

views.py

class QuestionView(viewsets.ModelViewSet) :
    queryset = models.Question.objects.all()
    serializer_class = QuestionSerializer

    def list(self, request, *args, **kwargs):
        serializer = QuestionSerializer(models.Question.objects.all())
        return Response(serializer.data)

序列化程序.py

class QuestionSerializer(serializers.ModelSerializer):
    class Meta:
        model= Question
        fields= ("question_text", "owner", "pub_date")

url.py

router = routers.DefaultRouter()
router.register('profile', cebula_views.SettingView)
router.register('question', cebula_views.QuestionView.as_view({
    'get':'list',

}), 'userpage-question')

urlpatterns = [
    ...
    url(r'^', include(router.urls)),
    ...
] 

文件“C:\Users\1Sun\Cebula3\businessproject\urls.py”,第34行,url(r'^',include(router.url)),文件“C:\Users\1Sun\AppData\Local\Programs\Python\Python36\lib\site packages\rest\u framework\routers.py”,第101行,url self.\u url=self.get\u url()文件“C:\Users\1Sun\AppData\Local\Programs\Python36\lib\site packages\rest\u framework\routers.py”,第363行,在get\u url url url=super(DefaultRouter,self)中。get\u url()文件“C:\Users\1Sun\AppData\Local\Programs\Python\Python36\lib\site packages\rest\u framework\routers.py”,第261行,在get\u-urls-routes(viewset)文件中”C:\Users\1Sun\AppData\Local\Programs\Python36\lib\site packages\rest\u framework\routers.py”,第176行,在get\u routes extra\u actions=viewset.get\u extra\u actions()AttributeError:“function”对象没有属性“get\u extra\u actions”

在我看来,这是我应该写get_extra_actions方法在问题视图类,如果是这样,我怎么写?像这样?

def get_extra_actions() : 
    return  ???

如果没有,问题在哪里?

[编辑]

当我擦除.as_view()在url部分写router.register(问题,cebula_views。用户页面问题

错误是

在0x00000283172D3D08由.包装器启动的线程中未处理的异常


共有3个答案

魏成济
2023-03-14

使用此URL格式。

    from django.urls import path
    from rest_framework.urlpatterns import format_suffix_patterns
    from .views import QuestionView

    urlpatterns = [
     path('QuestionView/', QuestionView),
    ]

    urlpatterns = format_suffix_patterns(urlpatterns)
郎羽
2023-03-14

在路由器中注册视图集时,不必使用.as_view()方法

所以,应该是这样

router.register('question', cebula_views.QuestionView, 'userpage-question')
router.register('question', cebula_views.QuestionView.as_view({
    'get':'list',

}), 'userpage-question')
纪勇军
2023-03-14

我不知道为什么,但我不能创建一个路由(与.as_view())使用路由器。但是,当我试图直接在url模式中创建路由时,它对我有效。

所以,它应该是这样的:

urlpatterns = [
    path('question', cebula_views.QuestionView.as_view({
         'get':'list',
         }), 'userpage-question'),
]

希望它能帮助你!

 类似资料:
  • 问题内容: 我想转换火花数据框架以使用以下代码添加: 详细的错误消息是: 有人知道我在这里做错了吗?谢谢! 问题答案: 您无法使用数据框,但可以将数据框转换为RDD并通过映射将其映射。在Spark 2.0之前,别名为。使用Spark 2.0,您必须先明确调用。

  • 问题内容: 我如何解决此错误,我是从GitHub下载此代码的。 引发错误 请帮我解决这个问题! 我用了: 我得到这个错误。有人帮我,我只想让它工作为什么这么难? 问题答案: 我怀疑您从中复制代码的地方启用了急切执行功能,即在程序开始时调用了该位置。 您也可以这样做。希望能有所帮助。 更新:请注意,默认情况下,TensorFlow 2.0中启用了急切执行。因此,以上答案仅适用于TensorFlow

  • 问题内容: 下面的代码给出了错误: 码: 问题答案: 从代码中,我可以看到你希望允许用户下载pdf。 现在开始 去 http://localhost:5000

  • 问题内容: 当我尝试时,会发生错误: 我找到了带有pyelasticsearch.py 的链接https://github.com/toastdriven/pyelasticsearch/blob/master/pyelasticsearch.py​​#L424-469,但我不知道它是哪个版本。无论如何,该代码中没有购买我的pyelasticsearch.py​​。任何人都有相同的经历吗?感谢您的

  • 我和cloud composer一起策划了两个数据流工作,它已经工作了一个月了。突然,这两个作业停止工作,并出现以下错误消息: 在作业中,我用存储客户端从google cloud storage下载一个文件。我以为这是因为一些依赖问题。在composer环境中,我安装了google-cloud-storage,但没有指定版本。我尝试指定包的不同版本,但似乎没有任何工作。 谢了!

  • 问题内容: 我正在使用Flask开发论坛模板。当我尝试使用表单在浏览器中创建新线程时,SQLAlchemy抛出AttributeError。当我尝试与论坛到线程实现一对多关系以及与线程到用户实现一对多关系时,出现了问题。 models.py 所有新的帖子/主题,并在views.py中处理 views.py 问题答案: 问题是这样的: 你要使用ORM对象,而不是主键列: 该错误表示整数被解释为ORM