python - 通过带内联的 Django ModelAdmin 在管理门户中显示与 "self"的两个关系

标签 python django django-admin

简而言之,我正在尝试让 Django 管理员为不止一种与自身的关系呈现内联。可以吗?如何?采用以下未经测试*插图*;假设它有效,我会去管理门户,选择人员,然后添加 child (儿子/女儿)和学生。

模型示例 (models.py)

class Person(models.Model):
    name = models.CharField(max_length=400)
    parent = models.ForeignKey('self',related_name='children')
    teacher = models.ForeignKey('self',related_name='students')

Django 管理 (admin.py)

class ChildrenInline(admin.TabularInline):
    model = Person
    fk_name = 'parent'

class StudentsInline(admin.TabularInline):
    model = Person
    fk_name = 'teacher'

class PersonAdmin(admin.ModelAdmin):
    inline = [ChildrenInline,StudentsInline]
    model = Person

admin.site.register(Person,PersonAdmin)

如果上面的代码在技术上是正确的,我需要弄清楚发生了什么。

谢谢!

最佳答案

你打错了!

inline = 而不是像 docs 中的复数 inlines = .

我测试过,它适用于 inlines = :)

此外,感谢发布正确的代码以进行重现!

关于python - 通过带内联的 Django ModelAdmin 在管理门户中显示与 "self"的两个关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9529373/

相关文章:

python - Django redis LPUSH/RPUSH

Django 与额外字段的多对多关系

python - Django Python 中的搜索字段

django - 对于当前上下文而言,量化结果的位数过多

python - Django 管理员登录页面 - Python 崩溃

python - 如何在 Python 中生成字符串的数字签名?

python - Django 模型,用属性覆盖保存方法或自定义方法

python - Django 找不到我的非 python 文件!

python - 如何生成Python虚拟环境的environments.yml文件?

python写入文件正在中断