Tôi đang theo một hướng dẫn nằm ở here sử dụng Django Rest Framework và tôi tiếp tục gặp lỗi lạ về một trường.AttributeError trong khi sử dụng Django Rest Framework với serializers
tôi có mô hình sau đây trong tôi 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()
Sau đó serializer của tôi trong serializers.py
from rest_framework import serializers
from task.models import Task
class TaskSerializer(serializers.ModelSerializer):
class Meta:
model = Task
fields = ('title', 'description', 'completed')
và views.py
của tôi như sau:
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
)
và urls.py tôi có dòng này:
url(r'^tasks/$', 'task_list', name='task_list'),
Khi tôi cố gắng truy cập vào curl http://localhost:9000/api/tasks/
, tôi tiếp tục nhận được lỗi sau và tôi không chắc chắn những gì để làm cho nó:
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'.
Tôi đang thiếu gì?
này làm việc cho tôi nữa. Cảm ơn. – Frankline
Cảm ơn vì điều này, tôi đã thường tạo ListSerializers nhưng bây giờ tôi biết. Cảm ơn nhà vô địch. –
Thiên thần có tên .. bị kẹt trong này từ năm ngày qua .. –