Django Rest框架ListAPIView没有返回值

时间:2018-09-12 19:15:00

标签: django django-rest-framework

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

这是我的Serializer.py

class ArticleSerializer(serializers.Serializer):
    class Meta:
        model = Article
        fields = ("title", "content")

views.py

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

class ArticleDetailView(RetrieveAPIView):
    queryset = Article.objects.all()
    serializer_class = ArticleSerializer

urls.py

from .views import ArticleListView, ArticleDetailView
    urlpatterns = [
        path('', ArticleListView.as_view() ),
        path('<pk>', ArticleDetailView.as_view() ),
    ]

当我拉起http://127.0.0.1:8000/api/时,DB中有3个Article模型对象,而我得到的就是这个:

 [ 
    {},
    {},
    {}
 ]

models.py

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

        def __str__(self):
            return self.title

为什么我看不到我班上的titlecontent的值?

1 个答案:

答案 0 :(得分:4)

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

ListChangeListener.Change

应为:

class ArticleSerializer(serializers.Serializer):

请注意您缺少的“模型”。 使用常规的class ArticleSerializer(serializers.ModelSerializer): ,您需要显式定义字段,而Serializer将对相关模型进行自省。