我正在学习一个位于here的教程,该教程使用Django Rest Framework,但我不断收到关于字段的奇怪错误.

models.py岁的时候有以下型号的

from django.db import models

class Task(models.Model):
    completed = models.BooleanField(default=False)
    title = models.CharField(max_length=100)
    description = models.TextField()

然后我的串行器在serializers.py

from rest_framework import serializers

from task.models import Task

class TaskSerializer(serializers.ModelSerializer):

    class Meta:
        model = Task
        fields = ('title', 'description', 'completed')

以及我的views.py美元,详情如下:

from rest_framework import status
from rest_framework.decorators import api_view
from rest_framework.response import Response

from task.models import Task
from api.serializers import TaskSerializer


    @api_view(['GET', 'POST'])
    def task_list(request):
        """
        List all tasks, or create a new task
        """
        if request.method == 'GET':
            tasks = Task.objects.all()
            serializer = TaskSerializer(tasks)
            return Response(serializer.data)

        elif request.method == 'POST':
            serializer = TaskSerializer(data=request.DATA)
            if serializer.is_valid():
                serializer.save()
                return Response(serializer.data, status=status.HTTP_201_CREATED)
            else:
                return Response(
                    serializer.errors, status=status.HTTP_400_BAD_REQUEST
                )

我的urls.py有这样一行代码:

url(r'^tasks/$', 'task_list', name='task_list'),

当我try 访问curl http://localhost:9000/api/tasks/时,我一直收到以下错误,并且我不确定如何处理它:

AttributeError at /api/tasks/
Got AttributeError when attempting to get a value for field `title` on serializer `TaskSerializer`.
The serializer field might be named incorrectly and not match any attribute or key on the `QuerySet` instance.
Original exception text was: 'QuerySet' object has no attribute 'title'.

我错过了什么?

推荐答案

简单指定many=True从查询集创建序列化程序时,TaskSerializer(tasks)将仅与Task的一个实例一起使用:

tasks = Task.objects.all()
serializer = TaskSerializer(tasks, many=True)

Django相关问答推荐

通过Model Form以编程方式设置Date TimeRangeField

Django逆转ForeignKey返回无

把Django测试和testcafe结合起来?

仅更新模型中的特定字段.Model Django

Django和静态文件

Urls.py中路径**kwargs的Django翻译?

带有变量键的 Django 模板括号表示法不起作用

按下按钮刷新在html文件中显示的变量

Django - 使用在 URL 中传递的父类主键从子类中过滤对象

Django 密码以什么格式存储在数据库中?

直接在Django的模板中访问ForeignKey

InvalidBasesError:无法解析 [] 的基础

将网络测功机添加到 Heroku django 应用程序时如何克服Coudn't find that formation错误?

测试 Django ModelForm 是否有实例

使用 XMLHttpRequest 提示下载文件

Django 模板列表的第一个元素

Django 模型:delete() 未触发

django select_related - 何时使用它

Django - TypeError - save() 得到了一个意外的关键字参数force_insert

如何更改模型标签并给它一个自定义名称