返回额外的字段以及JSON中的模型字段-Django

问题描述 投票:0回答:1

我正在使用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中,由于在GroupSerializer中未定义,因此我在UI上未获得逻辑字段。有什么办法可以做到这一点?

python django django-models django-rest-framework django-serializer
1个回答
1
投票
from rest_framework.serializers import (ModelSerializer, BooleanField)

class GroupSerializer(serializers.ModelSerializer):
 logical_field = BooleanField(default=True)
 class Meta:
    model = Group
    fields = ['groupID', 'groupName', 'sectionID', 'logical_field']
© www.soinside.com 2019 - 2024. All rights reserved.