django中的递归关系不起作用

时间:2013-08-08 12:15:56

标签: python django

官方文件正在撰写https://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey

  

要创建递归关系 - 与自身具有多对一关系的对象 - 请使用models.ForeignKey('self')。

例如,我使用下一个模型:

class MediaGroup:
  name = models.CharField(max_length=200)
  parent = models.ForeignKey('self', blank=True, related_name="children")

当我运行syncdb时,它会抛出下一个异常:

File "/usr/lib/python2.7/dist-packages/django/db/models/fields/related.py", line 939, in __init__
assert isinstance(to, basestring), "%s(%r) is invalid. First parameter to ForeignKey must be either a model, a model name, or the string %r" % (self.__class__.__name__, to, RECURSIVE_RELATIONSHIP_CONSTANT)
AssertionError: ForeignKey(<class webpanel.models.MediaGroup at 0x225ca10>) is invalid. First parameter to ForeignKey must be either a model, a model name, or the string 'self'

1 个答案:

答案 0 :(得分:10)

您错过了(models.Model)

class MediaGroup(models.Model):