午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術文章
文章詳情頁

django使用F方法更新一個對象多個對象字段的實現

瀏覽:20日期:2024-10-17 17:22:04

通常情況下我們在更新數據時需要先從數據庫里將原數據取出后放在內存里,然后編輯某些字段或屬性,最后提交更新數據庫。使用F方法則可以幫助我們避免將所有數據先載入內存,而是直接生成SQL語句更新數據庫。

假如我們需要對所有產品的價格漲20%,我們通常做法如下。當產品很少的時候,對網站性能沒影響。但如果產品數量非常多,把它們信息全部先載入內存會造成很大性能浪費。

products = Product.objects.all()for product in products: product.price *= 1.2 product.save()

使用F方法可以解決上述問題。我們直接可以更新數據庫,而不必將所有產品載入內存。

from django.db.models import F

Product.objects.update(price=F(’price’) * 1.2)

我們也可以使用F方法更新單個對象的字段,如下所示:

product = Product.objects.get(pk=5009)product.price = F(’price’) * 1.2product.save()

但值得注意的是當你使用F方法對某個對象字段進行更新后,需要使用refresh_from_db()方法后才能獲取最新的字段信息(非常重要!)。

如下所示:

product.price = F(’price’) + 1product.save()print(product.price) # <CombinedExpression: F(price) + Value(1)>product.refresh_from_db()print(product.price) # Decimal(’13.00’)

補充知識:Django批量更新多個屬性

有時候我們需要同時(一次性)更新某個用戶的多條屬性。

1. 用戶model如下:

class User(models.Model): UID = models.CharField(’員工uid’, max_length=200,) name = models.CharField(’員工名字’, max_length=200,) mobile = models.CharField(’手機號’, max_length=200,) mail = models.EmailField(u’郵箱’, max_length=200)

2. 用戶的數據

user_info = {’UID’: ’ADBES682BOEO’, ’name’: ’張三’, ’mobile’: ’12345678911’, ’mail’: ’test@test.com’ }

3. 新建用戶

User.object.create(UID=’ADBES682BOEO’,name=’張三’,mobile=’12345678911’,mail=’test@test.com’)

這就會在數據庫中新建一個張三的數據。

4. 更新數據

user_info = {’UID’: ’ADBES682BOEO’, ’name’: ’張三2’, ’mobile’: ’12345678912’, ’mail’: ’test2@test.com’ }

4.1 一般的更新操作

user = User.object.get(UID=’ADBES682BOEO’)user.name = user_info[’name’]user.mobile = user_info[’mobile’]user.mail = user_info[’mail’]user.save()

4.2 批量操作

user = User.object.filter(UID=’ADBES682BOEO’)user.update(**user_info)

以上這篇django使用F方法更新一個對象多個對象字段的實現就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Django
相關文章:
主站蜘蛛池模板: jizz一区二区 | 久久国产精品网站 | 国产在线日韩 | 婷婷中文| 亚洲白浆 | 超碰在线网站 | 国产成人精品久久 | 性爱在线免费视频 | 亚洲最新黄色网址 | 天天精品综合 | 福利视频一区二区三区 | 欧美日日 | 国产一区二区成人 | 午夜黄色网| a在线免费观看 | 操你啦影院 | 91丨九色丨蝌蚪丨少妇在线观看 | 亚洲淫片 | 婷婷激情四射 | 91丝袜一区在线观看 | 91精品国产日韩91久久久久久 | 久久不卡免费视频 | 国产精品成人网 | 亚洲三级视频 | 亚洲二区在线视频 | 久草热在线| 国产高清一区 | 成人亚洲一区二区 | 午夜av一区 | 在线中文字幕日韩 | 亚洲图片综合网 | 日日夜夜狠狠爱 | 日日躁夜夜躁狠狠躁 | 久久99深爱久久99精品 | 亚洲成人免费看 | 国产黄色高清视频 | 国产午夜三级一区二区三 | 国产成人愉拍精品久久 | 精品久久一区二区 | 老色批av | 久久久久久久伊人 |