这是我的输出,看起来应该像
{
"status": 1,
"errors": "",
"results": [
{
"car_type": "sedan",
"is_active": true,
"company": {
["tata","hyundai"]
}
}
]
}
我的模型是
class CarType(CommonBase):
car_type = models.TextField(null=True, blank=True)
is_active = models.BooleanField(default=True)
company = models.ManyToManyField('Company', null=True,
blank=True)
class Company(CommonBase):
company_name = models.TextField(null=True, blank=True)
country = models.TextField(null=True, blank=True)
我应该如何为我的get API编写序列化程序,以使用is_active = True
返回所有汽车类型
答案 0 :(得分:1)
那个
{
"company": {[...]}
}
公司序列化中的词典内容没有意义,而是您想要的是实际列表。
仅关注results
中的项目序列化,您可以使用类似以下的序列化器:
class CarTypeSerializer(serializers.ModelSerializer):
company = serializers.SerializerMethodField()
def get_company(self, obj):
return [company.company_name for company in obj.company.all()]
class Meta:
model = CarType
fields = ("car_type", "is_active", "company")
这将产生如下输出:
{
"car_type": "Car type..",
"is_active": true,
"company": [
"company 1",
"company 2"
]
}