In Django, how do you make a model refer to itself?

user469652 picture user469652 · Feb 6, 2011 · Viewed 22.2k times · Source

Assume we have class Employee. I want to have a field which references a different instance of the same class.

How to write this? How about the following code?

ref_employee= models.ForeignKey('self',null=True,blank=True)

Answer

Jonny Buchanan picture Jonny Buchanan · Feb 6, 2011

http://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey

To create a recursive relationship -- an object that has a many-to-one relationship with itself -- use models.ForeignKey('self').

So you have it right. It's usually faster to determine if code will do what you want by running it :)