il arrive parfois qu’on ai besoin de changer la valeur d’un champs de toutes les entrées d’une table. Par exemple un champs “online” sur 300 entrées que l’on veut mettre à “offline”.
On peut utiliser pour celà la propriété update
Dans le shell:
In [2]: Movie.objects.filter(online=True).update(online=False) Out[2]: 360L |
360 est le nombre d’entrées modifiées. On peut spécifier plusieurs champs à modifier, par exemple:
In [2]: Movie.objects.filter(online=True).update(online=False, views=0) Out[2]: 360L |
Bon, ce post est plus tout jeune, mais je viens de tomber dessus. Alors merci bien pour le tip.
En passant, quand vous voulez exécuter des commandes django depuis un script isolé (par exemple pour mettre à jour une base de donnée), vous faites ça avant de lancer le script ?
export DJANGO_SETTINGS_MODULE=yoursite.settings
Ou bien vous avez une autre recette ?
Et bravo pour votre boulot sur ce blog. C’est peu à grâce à vous si je commence à devenir un pythoniste.
Ça dépend ce que tu veux. Parfois je fais ça :
http://sametmax.com/les-hooks-de-virtualenv-exemple-postactivate-pour-les-settings-de-django/
Parfois j’utilise plutôt settings.configure, si j’ai juste besoin d’un setup rapide ou indépendant d’un projet.
Souvent il y a aussi un ajout au PYTHON_PATH quelque part.