2010-11-15 14 views
0

Je voudrais mettre à jour divers modèles dans go.Champs de mise à jour de queryset Django avec l'équivalent minuscule - Django

J'ai besoin de mettre à jour un champ varchar avec l'équivalent en minuscules.


Une idée si cela peut être fait avec un seul jeu de requête?

+0

Pourquoi n'insérez-vous pas des minuscules pour commencer? –

+0

Exactement ce que je pensais. Doit avoir été aveugle :) De toute façon vous pouvez m'aider sur ce queryset par hasard? – RadiantHex

+0

Sera-t-il un ajout permanent au projet, ou un complément ponctuel destiné à nettoyer les données existantes? –

Répondre

1

Puisqu'il s'agit d'un one-off, il serait plus facile d'exécuter simplement ./manage.py dbshell et d'exécuter les requêtes UPDATE directement.

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

salut je souhaite que je pourrais le faire, les champs sont cryptés en utilisant TRIPLE DES, donc je dois le faire sur le côté de Django pensez – RadiantHex

+0

Wow, c'est ... pas drôle. Dans ce cas, il n'y a aucun moyen de le faire avec l'ORM Django en un seul coup; à la place, vous devrez parcourir toutes les entrées une par une, remplacer la valeur du champ et sauvegarder. –

+0

Salut, il y a possibilité de le faire avec l'ORM de Django, vérifiez ma réponse –

4

Si vous voulez le faire en utilisant ORM, juste essayer Database Functions. Vous pouvez passer un appel rapide:

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