我在資料庫中保存了一個具有多對多關系的物件,但是當我獲取它時,它會回傳該關系物件的 ID,但我想要整個物件,所以我在序列化程式中添加了一個屬性和之后,它只回傳 object.name 并且它的值為空,我不知道它為什么會這樣?任何人都可以幫忙嗎?
視圖.py
queryset = Tag.objects.filter(project_id=project_id).all()
serializer = TagSerializer(queryset, many=True)
return Response(serializer.data)
序列化程式.py
class TagSerializer(serializers.ModelSerializer):
class Meta:
model = Tag
# fields = '__all__'
fields = ['id', 'name', 'description', 'singleline']
singleline = SinglelineSerializer(read_only=True)
模型.py
class Tag(models.Model):
name = models.CharField(max_length=255, default='')
description = models.CharField(max_length=255, default='')
singleline = models.ManyToManyField(Singleline)
class Meta:
db_table = 'tags'
uj5u.com熱心網友回復:
ATag可以有多個 Singlelines,您需要使用many=True它,因為它是一個集合:
class TagSerializer(serializers.ModelSerializer):
singleline = SinglelineSerializer(read_only=True, many=True)
class Meta:
model = Tag
fields = ['id', 'name', 'description', 'singleline']
您可以通過預先設定singleline關系來提高視圖的效率,從而Singleline批量加載所有相關的s:
queryset = Tag.objects.filter(project_id=project_id).prefetch_related('singleline')
serializer = TagSerializer(queryset, many=True)
return Response(serializer.data)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/380400.html
標籤:Python 姜戈 数据库 PostgreSQL的 关系型数据库
