我正在使用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上未获得逻辑字段。有什么办法可以做到这一点?
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']