Changer la valeur d’un champs de toutes les entrées de la base en Django 2


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

2 thoughts on “Changer la valeur d’un champs de toutes les entrées de la base en Django

  • machin

    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.

Leave a comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.