stacklens / dusai-blog

杜赛的博客的评论区。详情见 Issue。
2 stars 0 forks source link

article/107/ #81

Open utterances-bot opened 3 years ago

utterances-bot commented 3 years ago

Django-Vue搭建个人博客:基于类的视图 - 杜赛的博客

https://www.dusaiphoto.com/article/107/

PioneerHunter commented 3 years ago

你好,列表接口按照详情接口的做法去配置的,但是在 url 中却显示列表接口类没有 as_view 方法,是为何呢?

sxdlik commented 3 years ago

你在把ArticleList视图改成类视图的时候。 url 部分应该改成 path('', views.ArticleList.as_view(), name='list') 这里你没有写出来,如果是初学者的话,很可能会卡在这部分

zilinshisi commented 3 years ago

你好,ArticleList视同修改了,url也改了,但是http获取的时候返回的不再是json,后台报错'ArticleList' object has no attribute 'retrieve',是什么原因。求助

zilinshisi commented 3 years ago

自己已解决。😂

HappyJoo commented 2 years ago

Postman 更新改版后不太容易用。发一点不知道以后还有没有用的小教程:

  1. 安装注册什么的自己搞定,进入到workplace,点击request旁边的加号新建一个request
  2. 输入网址http://127.0.0.1:8000/api/article/1/
  3. 将左边的get改成put
  4. 点击body,再点击raw,再点击旁边的text改成json,然后输入json
    {
    "title":"Send from Postman",
    "body":"Is this ok?"
    }

    大概是这样,老实说有点麻烦。但是我也没有试试httpie,说不定现在的更好用了呢。

github653224 commented 2 years ago

按照最后极简类写的接口 post带有body字段后 结果数据中body为空了

beyond24 commented 2 years ago

仿佛进入了现代化!

late-nightpoet commented 2 years ago

按照最后极简类写的接口 post带有body字段后 结果数据中body为空了

按照极简类写的话,需要将ArticleListSerializer中的fields加上‘body'字段,否则你会发现,在用命令行输入例如http -a root:root POST http://127.0.0.1:80 00/api/article/ title='22g' body='new 2test1' 这样的语句来新增一个文章时,POST不会接收body参数。你也可以在页面中看到,fields没有加body的话,表单中只有title和created字段

late-nightpoet commented 2 years ago

我想问,在debug模式下,在ArticleDetail和ArticleList处都设置了断点,在为什么用pycharm中的terminal书写http -a root:root POST http://127.0.0.1:80 00/api/article/ title='22g' body='new 2test1' 这样的命令时,没有进入断点,语句可以直接跟数据库进行操作。我所想要的是看一下ArticleList它是否获取了post所有的参数

kerry456 commented 2 years ago

@late-nightpoet pycharm 直接下断点就行

Herbert-CN commented 2 years ago

article list 如果使用这个view:

class ArticleList(generics.ListCreateAPIView):
    queryset = Article.objects.all()
    serializer_class = ArticleListSerializer

是没有办法创建article的,POST会出错。

需要创建Artilce可以加入

class ArticleList(generics.ListCreateAPIView, mixins.CreateModelMixin):
    queryset = Article.objects.all()
    serializer_class = ArticleListSerializer
    permission_classes = [IsAdminUserOrReadOnly]

同时修改

class ArticleListSerializer(serializers.ModelSerializer):
    class Meta:
        model = Article
        fields = [
            'id',
            'title',
            'body',
        ]
allisgao commented 1 year ago

回复 Herbert-CN commented on 2022年11月3日 article list 如果使用这个view:

class ArticleList(generics.ListCreateAPIView): queryset = Article.objects.all() serializer_class = ArticleListSerializer 是没有办法创建article的,POST会出错。 ...

我的可以,django V3.2

你的是不是在 settings.py 文件中,添加了DRF的全局配置?