【发布时间】:2017-06-28 19:22:36
【问题描述】:
给定以下系统
# Models
class Team(models.Model):
name = models.CharField(max_length=128)
class Player(models.Model):
name = models.CharField(max_length=128)
teams = models.ManyToManyField(Team)
# Serializers
class PlayerSerializer(serializers.ModelSerializer):
teams = serializers.PrimaryKeyRelatedField(many=True, queryset=League.objects.all(), required=False)
class Meta:
model = Team
fields = ('id', 'name', 'teams')
# Views
class TeamViewSet(viewsets.ModelViewSet):
queryset = Team.objects.all()
serializer_class = TeamSerializer
基本上一个球员可以加入许多球队
所以问题是,我如何实现端点来管理玩家与团队的关系。 假设我们有两个 ID 为 1 和 2 的团队 我用
创建了一个播放器POST /players/ {'name': 'player1'} 该玩家的 ID 为 1
我想将玩家添加到团队 1 和 2,然后从团队 2 中移除玩家
有了这个设置,我可以做到 PATCH /players/1/ {'teams': [1, 2]}
我现在如何从团队 2 中移除 player1?
另外,使用补丁请求将 player1 添加到团队 1 和 2 是否正确?
【问题讨论】:
标签: python django django-rest-framework manytomanyfield