【发布时间】:2021-06-28 04:30:17
【问题描述】:
AttributeError: 尝试在序列化程序 QuestionSerializer 上获取字段 title 的值时出现 AttributeError。
序列化程序字段可能命名不正确,并且与 Response 实例上的任何属性或键都不匹配。
原始异常文本是:“响应”对象没有属性“标题”。
models.py
class Question(models.Model):
title = models.TextField(null=False,blank=False)
status = models.CharField(default='inactive',max_length=10)
created_by = models.ForeignKey(User,null=True,blank=True,on_delete=models.SET_NULL)
def __str__(self):
return self.title
class Meta:
ordering = ('id',)
urls.py
urlpatterns = [
path('poll/<int:id>/', PollDetailsAPIView.as_view()),
]
serializers.py
class QuestionSerializer(serializers.ModelSerializer):
class Meta:
model = Question
fields =[
'id',
'title',
'status',
'created_by'
]
views.py
class PollDetailsAPIView(APIView):
def get_object(self, id):
try:
return Question.objects.get(id=id)
except Question.DoesNotExist:
return Response({"error": "Question does not exist"}, status=status.HTTP_404_NOT_FOUND)
def get(self, request, id):
question = self.get_object(id)
serializer = QuestionSerializer(question)
return Response(serializer.data)
关于邮递员,我正在尝试获取一个不存在的 ID,但我没有收到此回复 "error": "Question does not exist" 和 Error: 404,而是不断收到 error 500 Internal server error。
【问题讨论】: