【发布时间】:2021-02-12 09:38:38
【问题描述】:
models.py
class Game(models.Model):
name = models.CharField(max_length=255)
gamemodes = models.ManyToManyField(GameMode, related_name='gamemodes', blank=True)
class GameMode(models.Model):
name = models.CharField(max_length=255)
serializers.py
class GameModeSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
fields = ['pk', 'name']
model = GameMode
class GameSerializer(serializers.HyperlinkedModelSerializer):
gamemodes = GameModeSerializer(many=True, required=False)
class Meta:
model = Game
fields = ['pk', 'name', 'gamemodes']
def update(self, instance, validated_data):
print("Validated: ", validated_data)
更新名称与 PATCH 完美配合。但是如何通过 PATCH 请求向其余框架中的 Game 对象添加“游戏模式”?
在序列化程序的更新功能上,当我修补某些东西时它会打印所有值,但是当我提交“游戏模式”时它不会出现在变量 validated_data
最好的
【问题讨论】:
-
您是否尝试过文档中列出的内容:django-rest-framework.org/api-guide/relations/…?
-
问题是“gamemodes”没有添加到validated_data中
-
你为
gamemodes提交了什么数据? -
@schillingt [1,]
标签: python-3.x django django-rest-framework