Primary_key veut dire que le champ peut être utilisé pour identifier de manière sûre l'instance de l'objet. (ou la ligne dans le dbm)

ça à du sens sur un charfield qui sera donc unique.

Par défaut Django créé un Autofield qui va être auto-incrémenté mais il est possible de changer cela avec l'attribut primary_key. Le fait que ce soit une primary_key ne veut pas dire que ce sera auto-incrémenté mais que ce sera l'identifiant de l'instance.

mes 2 cents.

Le lun. 07 mai 2012 16:01:53 CEST, David THENON a écrit :
Salut,

L'attribut 'primary_key' n'est vraiment utile à mon sens qu'avec un
'AutoField', mais en tout cas je doute fortement qu'il soit utile sur un
CharField (comme dans ton exemple) qui implique un string qu'on ne peut pas
incrémenter.

Et vu que c'est id_url que tu veux incrémenter, c'est donc sur lui que tu dois
ajouter l'option du primary_key :

   id_url = models.AutoField(unique=True, primary_key=True)
   url = models.CharField(max_length=255)

Cela dit, le schéma de ta table sql doit le prévoir, vu que l'auto-increment
se fait au niveau de la bdd, pas de Django.



_______________________________________________
django mailing list
[email protected]
http://lists.afpy.org/mailman/listinfo/django

Répondre à