python - DRF 序列化程序中的源字段,具有相同模型的多个外键
问题描述
我有一个 Django 模型如下:
class Team(models.Model):
name = models.CharField(max_length=100, unique=True)
managers = models.ManyToManyField(User, through=MgrToTeam, related_name='mng')
users = models.ManyToManyField(User, through=UsrToTeam,related_name='usr')
我现在有一个序列化程序,我需要在其中显示与团队关联的所有用户和经理:
class TeamDetailSerializer(serializers.ModelSerializer):
managers = serializers.SlugRelatedField(queryset=User.objects.all(), slug_field='name')
users = serializers.SlugRelatedField(queryset=User.objects.all(), slug_field='name')
class Meta:
model = Team
fields = ['id', 'name', 'managers', 'users']
但是,这为用户和经理提供了相同的输出。我该如何解决这个问题?
解决方案
我很好奇你为什么要使用SlugRelatedField
. 假设您确实有UserSerializer
某种形式,那么这样做对您有用吗?
class TeamDetailSerializer(serializers.ModelSerializer):
managers = UserSerializer(many=True)
users = UserSerializer(many=True)
class Meta:
model = Team
fields = ['id', 'name', 'managers', 'users']