Python 扩展Django用户模型:ForeignKey错误

Python 扩展Django用户模型:ForeignKey错误,python,django,Python,Django,我正在尝试扩展Django用户模型以包含另一个字段。如文档中所述,我对该字段进行了如下扩展: class Employee(models.Model): # This field is required. user = models.OneToOneField(User) manager_id = models.ForeignKey(User, related_name='employees') 我希望manager_id是自引用的,并且与用户相关(而不是定义新的

我正在尝试扩展Django用户模型以包含另一个字段。如文档中所述,我对该字段进行了如下扩展:

   class Employee(models.Model):
    # This field is required.
    user = models.OneToOneField(User)
    manager_id = models.ForeignKey(User, related_name='employees')
我希望manager_id是自引用的,并且与用户相关(而不是定义新的manager表),并且只在常规用户页面中显示新字段。为此,按照文档中的说明,我还添加了以下内容:

class EmployeeInline(admin.StackedInline):
    model = Employee
    can_delete = False
    verbose_name_plural = 'employee'

# Define a new User admin
class UserAdmin(UserAdmin):
    inlines = (EmployeeInline, )

# Re-register UserAdmin
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
但是,我收到以下例外情况:

<class 'dhtmlScheduler.models.Employee'> has more than 1 ForeignKey to <class 'django.contrib.auth.models.User'>
有一个以上的外键

有人能提供一些建议吗?

如果你真的希望
经理id
是自我参照的,那么Aamir对你的问题的评论就是最好的选择

如果希望
manager\u id
以示例代码中的方式引用
用户
模型,则需要告诉
EmployeeInline
使用哪个外键

像这样:

class EmployeeInline(admin.StackedInline):
    model = Employee
    can_delete = False
    verbose_name_plural = 'employee'
    fk_name = 'manager_id'

这将在用户的管理页面上显示用户的员工。还有一些细节。

我想你需要
manager\u id=models.ForeignKey('self',related\u name='employees')
如果你想
manager\u id
成为自我参照??