Skip to main content
 首页 » 编程设计

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

2025年05月04日26lautakyan007

简而言之,我正在尝试让 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 = :)

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