2010-11-15 4 views
0

Я хотел бы обновить различные модели в go.Django queryset update fields с нижним регистром - Django

Мне нужно обновить поле varchar с нижним регистром.


Любая идея, если это можно сделать с помощью одного набора запросов?

+0

Почему вы не вставляете строчные буквы, чтобы начать? –

+0

Точно то, что я думал. Должно быть, слепой :) В любом случае вы можете помочь мне в этом вопросе случайно? – RadiantHex

+0

Будет ли это постоянное дополнение к проекту или одноразовым только для очистки существующих данных? –

ответ

1

Поскольку это одноразово, было бы проще просто запустить ./manage.py dbshell и запустить запросы UPDATE напрямую.

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

привет, я хотел бы, чтобы я мог это сделать, поля зашифрованы с помощью TRIPLE DES, поэтому мне нужно сделать это на стороне Django I думаю, – RadiantHex

+0

Вау, это ... не весело. В этом случае невозможно сделать это с помощью Django ORM одним выстрелом; вместо этого вам придется перебирать все записи один за другим, заменять значение поля и сохранять. –

+0

Привет, есть возможность сделать это с помощью Django ORM, проверить мой ответ –

4

Если вы хотите сделать это с помощью ORM, просто попробуйте Database Functions. Вы можете сделать быстрый звонок:

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