在django的model定義中,有時需要某個Field引用當前定義的Model,比如一個部門(Department)的Model,它有一個字段是上級部門(super_department),上級部門應該是一個外鍵並引用Model Department,即:

但是這樣的定義對於python來說是不允許的,因為在定義Field super_department時,Department定義還未完成,python會提示你Department未定義,那么怎么辦呢?放心吧,django已經為你考慮好這種情況了,只需要在定義時將ForeignKey所引用的Model改為‘self’即可,即:

然后同步models至數據庫時就會生成一個引用自己的外鍵。
unique_together

