使用以下模型,
class Song(models.Model):
name = models.CharField(max_length=10)
class Album(models.Model):
songs = models.ManyToManyField(Song, through=AlbumSong)
class AlbumSong(models.Model):
song = models.ForeginKey(song)
album = models.ForeginKey(album)我想用歌曲做bulk_create专辑(以下代码不起作用,因为歌曲字段不能设置为原样)
albums = [
Album(
songs=[1,2]
),
Album(
songs=[3,5]
)
]
Album.objects.bulk_create(albums)我也想要bulk_update与歌曲设置为值列表
albums = Album.objects.some_filter()
for album in albums:
album.songs = [1,2]
Album.objects.bulk_update(albums)我可以通过表在AlbumSong上做bulk_create,但用bulk_update就更难了,因为你可能需要从专辑中删除一些歌曲。(如果您想将歌曲设置为[1, 2],如果现有专辑中包含的歌曲不是1,2,则必须删除1,2以外的歌曲)
发布于 2020-05-25 21:56:52
所以我最终做了删除和修改
找到所有现有的专辑,在(Album.objects.some_filter().update())
Album.objects.some_filter().update())
删除[1,2] AlbumSongs和[1,2]
https://stackoverflow.com/questions/61999266
复制相似问题