我正在嘗試構建一個非常通用的模型,它需要嵌套的靈活性。這是一個簡單的例子。相同類型的Django模型外鍵
Work Symphony No.1
|_Work |_Movement 1
| |_Work | |_Allegro
| |_Work | |_Largo
| |
|_Work |_Movement 2
|_Work |_Poco Allegretto
我希望我能做的事情拋出一個語法錯誤,因爲工作顯然還沒有定義它不能是一個ForeignKey。
class Work(models.Model):
work_name = models.CharField('Work Name', max_length=100)
work_parent = models.ForeignKey(Work)
我想使用一個基類是這樣的:
class BaseWork(models.Model):
pass
class Work(BaseWork):
name = models.CharField(max_length=100)
work_parent = models.ForeignKey(BaseWork)
我相信,通過這樣做,我可以讓弗萊自己的爺爺這麼說,但有一個「正確」的方式去做這個?
work_parent = models.ForeignKey('self')? – Seether 2014-11-05 12:50:23
除此之外,我會問自己究竟想要達到什麼目的,因爲使用這樣的設計,你可能需要在其他地方實現一些其他的數據控制機制,因爲模型本身並不能幫助你阻止Fry他自己的祖父。 – Seether 2014-11-05 12:59:09
'自我'似乎在工作,謝謝。 – asmacdo 2014-11-05 13:13:17