如何在DjangoRestFramework中更新关系

时间:2017-06-29 19:15:50

标签: django django-rest-framework

我最近开始学习DRF库,我不明白如何在this示例中使用AlbumSerializer中的方法更新来保存外键。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

它的基本示例序列化程序,但如果您需要建议,那么这可能会对您有所帮助。序列化程序的简单更新方法

def update(self, instance, validated_data):
    tracks = validated_data.pop('tracks')
    instance.album_name = validated_data.get('title', instance.album_name)
    instance.artist = validated_data.get('artist', instance.artist)
    instance.save()
    for track in tracks:
        new_track = Track.objects.get(album=instance, order=track['order'])
        new_track.title = track.get('title', new_track.title)
        new_track.duration = track.get('duration', new_track.duration)
        new_track.save()
    return instance