首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django,bulk_create还是bulk_update,有很多很多字段?

Django,bulk_create还是bulk_update,有很多很多字段?
EN

Stack Overflow用户
提问于 2020-05-25 17:10:38
回答 1查看 93关注 0票数 2

使用以下模型,

代码语言:javascript
复制
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专辑(以下代码不起作用,因为歌曲字段不能设置为原样)

代码语言:javascript
复制
albums = [
    Album(
        songs=[1,2]
    ),
    Album(
        songs=[3,5]
    )
]

Album.objects.bulk_create(albums)

我也想要bulk_update与歌曲设置为值列表

代码语言:javascript
复制
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以外的歌曲)

EN

回答 1

Stack Overflow用户

发布于 2020-05-25 21:56:52

所以我最终做了删除和修改

找到所有现有的专辑,在(Album.objects.some_filter().update())

  • find

  • 不是AllbumSongs的地方更新它们,并用(Album.objects.some_filter().update())

  • find them

  • bulk_create ignore_conflicts=True

删除[1,2] AlbumSongs和[1,2]

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61999266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档