djangorest框架ListAPIView不返回任何值

0 django django-rest-framework

我正在使用 django 重置框架来创建 API。

这是我的Serializer.py

class ArticleSerializer(serializers.Serializer):
    class Meta:
        model = Article
        fields = ("title", "content")
Run Code Online (Sandbox Code Playgroud)

views.py

class ArticleListView(ListAPIView):
    queryset = Article.objects.all()
    serializer_class = ArticleSerializer

class ArticleDetailView(RetrieveAPIView):
    queryset = Article.objects.all()
    serializer_class = ArticleSerializer
Run Code Online (Sandbox Code Playgroud)

urls.py

from .views import ArticleListView, ArticleDetailView
    urlpatterns = [
        path('', ArticleListView.as_view() ),
        path('<pk>', ArticleDetailView.as_view() ),
    ]
Run Code Online (Sandbox Code Playgroud)

当我拉起时http://127.0.0.1:8000/api/,数据库中有3个Article模型的对象,我得到的只是:

 [ 
    {},
    {},
    {}
 ]
Run Code Online (Sandbox Code Playgroud)

models.py

    class Article(models.Model):
        title = models.CharField(max_length=120)
        content = models.TextField()

        def __str__(self):
            return self.title
Run Code Online (Sandbox Code Playgroud)

为什么我看不到我班级的title和的价值观?content

Lin*_*via 5

您的代码中有一个小错字。

class ArticleSerializer(serializers.Serializer):
Run Code Online (Sandbox Code Playgroud)

应该:

class ArticleSerializer(serializers.ModelSerializer):
Run Code Online (Sandbox Code Playgroud)

请注意您缺少的“模型”。对于常规情况,Serializer您需要显式定义字段,同时ModelSerializer内省相关模型。