Return 额外的字段以及 JSON 中的模型字段 - Django
Return extra Fields along with model fields in JSON - Django
我正在使用 Modelserializer 序列化数据。在其中一种情况下,我必须将模型字段以外的一些额外字段发送到 UI。我怎样才能做到这一点?下面是我的代码 -
我的模型 -
class Group(models.Model):
groupID = models.AutoField(primary_key=True, db_index=True)
groupName = models.CharField(verbose_name="Name", max_length=30)
sectionID = models.ForeignKey(Section, on_delete=models.PROTECT, db_column='sectionID')
我的序列化程序 -
class GroupSerializer(serializers.ModelSerializer):
class Meta:
model = Group
fields = ['groupID', 'groupName', 'sectionID']
我的看法 -
@api_view(['GET'])
@permission_classes((permissions.IsAuthenticated,))
def getGroupInfo(request):
groups = models.Group.objects.all()
for group in groups:
group.logical_fied = True if <Custom condition>
serializer = GroupSerializer(groups, many = True)
return Response(serializer.data)
预计 UI
的响应
[{
"groupID":1,
"groupName":"A",
"sectionID":1,
"logical_field":True
}]
我收到回复
[{
"groupID":1,
"groupName":"A",
"sectionID":1
}]
在我的 serializer.data 中,我没有在 UI 上得到 logical_field,因为它没有在 GroupSerializer 中定义。有什么办法可以实现吗?
from rest_framework.serializers import (ModelSerializer, BooleanField)
class GroupSerializer(ModelSerializer):
logical_field = BooleanField(default=True)
class Meta:
model = Group
fields = ['groupID', 'groupName', 'sectionID', 'logical_field']
我正在使用 Modelserializer 序列化数据。在其中一种情况下,我必须将模型字段以外的一些额外字段发送到 UI。我怎样才能做到这一点?下面是我的代码 -
我的模型 -
class Group(models.Model):
groupID = models.AutoField(primary_key=True, db_index=True)
groupName = models.CharField(verbose_name="Name", max_length=30)
sectionID = models.ForeignKey(Section, on_delete=models.PROTECT, db_column='sectionID')
我的序列化程序 -
class GroupSerializer(serializers.ModelSerializer):
class Meta:
model = Group
fields = ['groupID', 'groupName', 'sectionID']
我的看法 -
@api_view(['GET'])
@permission_classes((permissions.IsAuthenticated,))
def getGroupInfo(request):
groups = models.Group.objects.all()
for group in groups:
group.logical_fied = True if <Custom condition>
serializer = GroupSerializer(groups, many = True)
return Response(serializer.data)
预计 UI
的响应[{
"groupID":1,
"groupName":"A",
"sectionID":1,
"logical_field":True
}]
我收到回复
[{
"groupID":1,
"groupName":"A",
"sectionID":1
}]
在我的 serializer.data 中,我没有在 UI 上得到 logical_field,因为它没有在 GroupSerializer 中定义。有什么办法可以实现吗?
from rest_framework.serializers import (ModelSerializer, BooleanField)
class GroupSerializer(ModelSerializer):
logical_field = BooleanField(default=True)
class Meta:
model = Group
fields = ['groupID', 'groupName', 'sectionID', 'logical_field']