Django-fr

Forum

#1 29-12-2010 18:51:44

beegees
Membre
Inscription : 26-12-2010
Messages : 66

Mettre à jour un champ d'une bd

Bonjour tout le monde,

J'avance à grand pas dans mon apprentissage de Django.

Petite question :

Je sélectionne un enregistrement d'une bd sqlite3 (via le shell) :

from programme.models import Patient
p = Patient.objects.filter(name="Gardner")

J'aurais voulu changer le nom en faisant :

p.name = "Sarkozy"

mais ça ne fonctionne pas.

Sauriez-vous me dire comment je peux faire un update sur ce champ svp ?

Est-ce la bonne méthode d'update ?

Merci d'avance pour l'aide.

beegees

Hors ligne

#2 29-12-2010 20:40:36

doddo
Membre
Inscription : 29-12-2010
Messages : 20

Re : Mettre à jour un champ d'une bd

Salut.

Attention, je crois qu'avec le nom que tu as saisi on ne peut que
supprimer...

Sans dèc, je crois qu'il faut faire un p.save() qprès.

Sinon tout est dans la doc.:
http://docs.djangoproject.com/en/1.2/topics/db/queries/#saving-changes-to-objects

a+
Rodrigue

On Wed, 29 Dec 2010 17:51:44 +0000, beegees wrote:
> Bonjour tout le monde,
>
> J'avance à grand pas dans mon apprentissage de Django.
>
> Petite question :
>
> Je sélectionne un enregistrement d'une bd sqlite3 (via le shell) :
>
>

from programme.models import Patient
> p = Patient.objects.filter(name="Gardner")

>
> J'aurais voulu changer le nom en faisant :
>
>

p.name = "Sarkozy"

mais ça ne fonctionne pas.
>
> Sauriez-vous me dire comment je peux faire un update sur ce champ svp
> ?
>
> Est-ce la bonne méthode d'update ?
>
> Merci d'avance pour l'aide.
>
> beegees
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django

Hors ligne

#3 29-12-2010 21:22:48

florian
Membre
Inscription : 14-10-2010
Messages : 7

Re : Mettre à jour un champ d'une bd

Bonjour,
si je me trompe pas, en faisant:

from programme.models import Patient
p = Patient.objects.filter(name="Gardner")

p contiens une "QuerySet" c'est-à-dire une liste d'objet.
tu peut soi modifier ta requête :

from programme.models import Patient
p = Patient.objects.filter(name="Gardner")[0]

ou utiliser "get" à la place de "filter" :

from programme.models import Patient
p = Patient.objects.get(name="Gardner")

il faut bien sur appeler p.save() pour enregistrer dans la base de
donné ton changement.

ref: http://docs.djangoproject.com/en/dev/ref/models/querysets/#get

Le 29 décembre 2010 14:40, doddo <doddo _AT_ sacristi.fr> a écrit :
> Salut.
>
> Attention, je crois qu'avec le nom que tu as saisi on ne peut que
> supprimer...
>
> Sans dèc, je crois qu'il faut faire un p.save() qprès.
>
> Sinon tout est dans la doc.:
> http://docs.djangoproject.com/en/1.2/topics/db/queries/#saving-changes-to-objects
>
> a+
> Rodrigue
>
> On Wed, 29 Dec 2010 17:51:44 +0000, beegees wrote:
>>
>> Bonjour tout le monde,
>>
>> J'avance à grand pas dans mon apprentissage de Django.
>>
>> Petite question :
>>
>> Je sélectionne un enregistrement d'une bd sqlite3 (via le shell) :
>>
>>

from programme.models import Patient
>> p = Patient.objects.filter(name="Gardner")

>>
>> J'aurais voulu changer le nom en faisant :
>>
>>

p.name = "Sarkozy"

mais ça ne fonctionne pas.
>>
>> Sauriez-vous me dire comment je peux faire un update sur ce champ svp ?
>>
>> Est-ce la bonne méthode d'update ?
>>
>> Merci d'avance pour l'aide.
>>
>> beegees
>> _______________________________________________
>> django mailing list
>> django _AT_ lists.afpy.org
>> http://lists.afpy.org/mailman/listinfo/django
>
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>

Hors ligne

#4 29-12-2010 21:53:20

doddo
Membre
Inscription : 29-12-2010
Messages : 20

Re : Mettre à jour un champ d'une bd

il a raison... j'ai été un peu vite en besogne. dslé !

On Wed, 29 Dec 2010 15:22:48 -0500, florian wrote:
> Bonjour,
> si je me trompe pas, en faisant:
>

from programme.models import Patient
> p = Patient.objects.filter(name="Gardner")

>
> p contiens une "QuerySet" c'est-à-dire une liste d'objet.
> tu peut soi modifier ta requête :
>

from programme.models import Patient
> p = Patient.objects.filter(name="Gardner")[0]

>
> ou utiliser "get" à la place de "filter" :
>
>

from programme.models import Patient
> p = Patient.objects.get(name="Gardner")

>
> il faut bien sur appeler p.save() pour enregistrer dans la base de
> donné ton changement.
>
> ref: http://docs.djangoproject.com/en/dev/ref/models/querysets/#get
>
> Le 29 décembre 2010 14:40, doddo <doddo _AT_ sacristi.fr> a écrit :
>> Salut.
>>
>> Attention, je crois qu'avec le nom que tu as saisi on ne peut que
>> supprimer...
>>
>> Sans dèc, je crois qu'il faut faire un p.save() qprès.
>>
>> Sinon tout est dans la doc.:
>>
>> http://docs.djangoproject.com/en/1.2/topics/db/queries/#saving-changes-to-objects
>>
>> a+
>> Rodrigue
>>
>> On Wed, 29 Dec 2010 17:51:44 +0000, beegees wrote:
>>>
>>> Bonjour tout le monde,
>>>
>>> J'avance à grand pas dans mon apprentissage de Django.
>>>
>>> Petite question :
>>>
>>> Je sélectionne un enregistrement d'une bd sqlite3 (via le shell) :
>>>
>>>

from programme.models import Patient
>>> p = Patient.objects.filter(name="Gardner")

>>>
>>> J'aurais voulu changer le nom en faisant :
>>>
>>>

p.name = "Sarkozy"

mais ça ne fonctionne pas.
>>>
>>> Sauriez-vous me dire comment je peux faire un update sur ce champ
>>> svp ?
>>>
>>> Est-ce la bonne méthode d'update ?
>>>
>>> Merci d'avance pour l'aide.
>>>
>>> beegees
>>> _______________________________________________
>>> django mailing list
>>> django _AT_ lists.afpy.org
>>> http://lists.afpy.org/mailman/listinfo/django
>>
>>
>> _______________________________________________
>> django mailing list
>> django _AT_ lists.afpy.org
>> http://lists.afpy.org/mailman/listinfo/django
>>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django

Hors ligne

#5 29-12-2010 23:25:49

beegees
Membre
Inscription : 26-12-2010
Messages : 66

Re : Mettre à jour un champ d'une bd

Salut,

Merci à vous deux pour vos réponses.

+1 pour Florian.

J'avais en fait trouvé grâce à get mais j'attendais d'avoir vos avis (et j'ai bien fait d'attendre).

Cette seconde technique ...[0], je ne la connaissais pas.

Bonne nuit et merci encore.

beegees

PS: existe-t'il une mailing list Django (et Python) pour résoudre des problèmes comme celui-là ?

Hors ligne

#6 29-12-2010 23:37:30

Jonathan Leroy - Inikup
Membre
Lieu : Nîmes, france
Inscription : 11-08-2010
Messages : 27
Site Web

Re : Mettre à jour un champ d'une bd

Le 29/12/10 23:25, beegees a écrit :
> Salut,

Salut,

> PS: existe-t'il une mailing list Django (et Python) pour résoudre des
> problèmes comme celui-là ?

Oui, elle est d'ailleurs synchronisée à ce forum:
django _AT_ lists.afpy.org
http://lists.afpy.org/mailman/listinfo/django

Hors ligne

#7 30-12-2010 09:53:44

beegees
Membre
Inscription : 26-12-2010
Messages : 66

Re : Mettre à jour un champ d'une bd

Salut John,

Merci pour ta réponse.

Je me suis inscrit à la liste.

Bonnes fêtes.

beegees

Hors ligne

Pied de page des forums