Can I Make a foreignKey to same model in django?

匿名 (未验证) 提交于 2019-12-03 02:16:02

问题:

Assume I have this model :

class Task(models.Model):     title = models.CharField() 

Now I would like that a task may be relates to another task. So I wanted to do this :

class Task(models.Model):     title = models.CharField()     relates_to = ForeignKey(Task) 

however I have an error which states that Task is note defined. Is this "legal" , if not, how should I do something similar to that ?

回答1:

class Task(models.Model):     title = models.CharField()     relates_to = models.ForeignKey('self') 

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



回答2:

Yea you can do that, make the ForeignKey attribute a string:

class Task(models.Model):     title = models.CharField()     relates_to = ForeignKey('Task') 

In depth, you can also cross reference an app's model by using the dot notation, e.g.

class Task(models.Model):     title = models.CharField()     relates_to = ForeignKey('<app_name>.Task')  # e.g. 'auth.User' 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!