DJANGO:通过添加前缀来批量更新字段

时间:2016-10-21 04:50:52

标签: python django

我希望在查询集中更新对象的Django模型字段。具体来说,我想在其中一个字段上添加一个前缀,即如果某个对象的名称如'Wilson',我想在其前面添加'OLD',那么它将成为'OLDWilson'。

我可以想到以下使用循环:

my_objs = MyObjects.objects.filter(name='some_name') # This has over 40000 records
for obj in my_objs:
    obj.name = 'OLD{0}'.format(obj.name)
    obj.save()

我希望有一种更优雅的方式来利用此处指定的UPDATE方法:Django Mass Update

如下所示:

MyObjects.objects.filter(name='some_name').update(name='OLD+name_here')

关于如何实现这一目标的任何指示?

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

    from django.db.models import F

    Myobj = MyObjects.objects.filter(name='some_name')
    Myobj.update(name='OLD'+ F('name'))
相关问题