官方文件正在撰写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'
答案 0 :(得分:10)
您错过了(models.Model)
:
class MediaGroup(models.Model):