gpt4 book ai didi

python - 扩展 Django 用户模型 : ForeignKey Error

转载 作者:太空宇宙 更新时间:2023-11-04 01:29:47 25 4
gpt4 key购买 nike

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

   class Employee(models.Model):
# This field is required.
user = models.OneToOneField(User)
manager_id = models.ForeignKey(User, related_name='employees')

我希望 manager_id 是自引用的并且与用户相关(而不是定义一个新的经理表)并且只是在一般用户页面中显示新字段。为此,按照文档中的说明,我还添加了以下内容:

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'>

谁能指点一下?

最佳答案

如果您真的希望 manager_id 能够 self 引用,那么 Aamir 对您的问题的评论就是您的选择。

如果您希望 manager_id 像示例代码中那样成为对 User 模型的引用,您需要告诉 EmployeeInline 使用哪个外键。

像这样:

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

这将在他/她的管理页面上显示用户的员工。 Django docs有更多的细节。

关于python - 扩展 Django 用户模型 : ForeignKey Error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14690461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com