比如 字典A 存有要更新的键值对,然后:
Model_foo.objects.get(pk=some_pk).update_by_dict(dict_A)
Model_foo.objects.get(pk=some_pk).update_by_dict(dict_A)
|
1
Model_foo.objects.filter(pk=some_pk).update(**dict_A)
|
|
2
当然,A 的key 只能是 Model_foo的 fields, 如果有key不是,自己去除
|
|
4
不是有个save(update_fields=[some_fields])吗?
|
|
5
@magine
没记错的话, update 只能用在 queryset 上, get 获取的是单个对象 不是 queryset ,所以不能用。 filter().update() 就行, 翻译成 SQL就是 update TABLE set A=1, B=2 where id = ... |
|
6
@yueyoum
theType, created = Type.objects.get_or_create( num=new_type_dic['num'], defaults=dict( name=new_type_dic['name'], manufacturer=new_type_dic['manufacturer'], pattern=new_type_dic['pattern'], standard=new_type_dic['standard'], )) if created==True: info['new_type_num'] = theType.num else: Type.objects.filter(num=theType.num).update(new_type_dic) 先检查是否已有设备类型(Type),如果没有就新建,并在info中留下记录,否则就用字典数据更新。 这样写有没有冗余?或者说不合理? |
|
7
|
|
37Y37Jul 11, 2018
8
__dict__.update 了解一下
|