我是Python和Django编程的新手,我出于学习目的而使用的测试API遇到了这个问题。我的问题是,当我向我的API发出get请求时,得到以下响应:
[
{},
{}
]
我的应用程序的目录层次结构是这样(如您所见,我已经为Django模型创建了一个模块)
── __init__.py
├── __pycache__
├── adapters.py
├── admin.py
├── apps.py
├── managers.py
├── migrations
├── models
│ ├── __init__.py
│ ├── car.py
├── serializers.py
├── tests.py
├── urls.py
└── views.py
所以,在模型/ init 中,我有:
from .car import *
在models / car.py中:
class Size(models.Model):
description = models.CharField(max_length=200, null=True, blank=True)
height = models.DecimalField(max_digits=3, decimal_places=2, null=True, blank=True)
width = models.DecimalField(max_digits=3, decimal_places=2, null=True, blank=True)
在serializers.py中:
class SizeSerializer(serializers.Serializer):
class Meta:
model = Size
fields = ['description']
在views.py中:
class SizeList(APIView):
def get(self, request, format=None):
size = Size.objects.all()
serializer = SizeSerializer(size, many=True)
return Response(serializer.data)
在我的数据库表中,我有2条记录,并且该应用程序正在返回2个空对象,我认为与数据库的连接正常,因为当我只有一个时,API仅返回了1个空对象。是什么原因造成的?我在同一项目中使用allauth实现了用户身份验证,并且工作正常,但是当我尝试实现这些自定义模型时,我只是没有正确的响应。感谢您的帮助!
PS:对不起,我是英国人。
答案 0 :(得分:1)
尝试使用class SizeSerializer(serializers.ModelSerializer)
Serializers
和ModelSerializer
之间的区别基本上是:
ModelSerializer类与常规Serializer类相同,除了:
https://www.django-rest-framework.org/api-guide/serializers/#modelserializer
答案 1 :(得分:0)
您需要使用ModelSerializer
class SizeSerializer(serializers.ModelSerializer):
...