2010-11-15 105 views
0

我想在去更新各種模型。Django的查詢集與小寫形式更新領域 - Django的

我需要更新與小寫等效的varchar字段。


任何想法,如果能夠用一個單一的查詢集做了什麼?

+0

爲什麼不插入小寫字母開頭? – 2010-11-15 16:52:43

+0

正是我所想的。一定是盲目的:)任何方式你可以幫助我在這個查詢集偶然? – RadiantHex 2010-11-15 17:24:56

+0

它會永久添加到項目中,還是一次性清理現有數據? – 2010-11-15 17:33:18

回答

1

由於這是一次性的,所以只需運行./manage.py dbshell並直接運行UPDATE查詢會更容易。

UPDATE sometable SET somefield=LOWER(somefield); 
+0

嗨我希望我能做到這一點,字段使用TRIPLE DES加密,所以我需要在Django身邊做認爲 – RadiantHex 2010-11-15 18:17:31

+0

哇,這是...沒有樂趣。在那種情況下,Django ORM無法一次完成。相反,您必須逐個遍歷所有條目,替換字段值並保存。 – 2010-11-15 18:19:51

+0

你好,有可能與Django的ORM做,檢查我的回答 – 2016-09-09 06:30:17

4

如果您想要使用ORM來完成,只需嘗試Database Functions即可。 您可以撥打一個快速電話:

from django.db.models.function import Lower 
SomeModel.objects.update(somefield=Lower('somefield'))