Supposons que nous ayons la classe Employee
. Je veux avoir un champ qui référence une instance différente de la même classe.
Comment écrire ça ? Qu'en est-il du code suivant ?
ref_employee= models.ForeignKey('self',null=True,blank=True)
Supposons que nous ayons la classe Employee
. Je veux avoir un champ qui référence une instance différente de la même classe.
Comment écrire ça ? Qu'en est-il du code suivant ?
ref_employee= models.ForeignKey('self',null=True,blank=True)
http://docs.djangoproject.com/fr/dev/ref/models/fields/#foreignkey
Pour créer une relation récursive -- un objet qui a une relation de plusieurs à un avec lui-même -- utilisez
models.ForeignKey('self')
.
Donc vous avez raison. Il est généralement plus rapide de déterminer si le code fera ce que vous voulez en l'exécutant :)
Vous pouvez référencer d'autres modèles par nom (en utilisant une chaîne, y compris le paquet), au lieu de par la classe directement :
Donc, si votre classe Employee
est dans l'application hr
:
class Employee(models.model):
other_employee = models.ForeignKey('hr.models.Employee', null=True, blank=True)
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.