django如何建立指向自身的外键


如题,试着用django系统做一个微博系统,在建立user model时使用的是OneToOne的方式扩展django.contrib.auth.admin的User,但出了点问题,想实现微博上关注和粉丝的功能,这样写报错


 class weiboUser(models.Model):
    user = models.OneToOneField(User)
    fans = models.ForeignKey(weiboUser,related_name="fans")
    focus  = models.ForeignKey(weiboUser,related_name="focus")

所以想问一下如何在model下建立指向自身model的外键?谢谢。

补充,参照了官方文档,做了以下修改,虽然不报错了,但无法同步数据库,求高人继续指导。


 class weiboUser(models.Model):
    user = models.OneToOneField(User)
    fans = models.ManyToManyField('self',symmetrical=False)
    focus  = models.ManyToManyField('self',symmetrical=False)

python django

hinana 10 years, 2 months ago

Your Answer