更改django管理员';s外键小部件

更改django管理员';s外键小部件,django,django-models,foreign-keys,django-admin,many-to-many,Django,Django Models,Foreign Keys,Django Admin,Many To Many,我在django项目中有几个模型:课程包、课程和章节 课程与CoursePack有多对多关系,在管理员中,经过一些内联编辑后,CoursePack显示以下小部件: (这是一种课程-课程包关系) 允许我选择、编辑和创建另一门课程,该课程将自动添加到课程包中 但是,章节(“capítulo”)和课程模型通过外键关系连接,管理员上显示的小部件如下所示: (这是一个章节-课程关系) 我对其进行了编辑,以便显示较少的字段,因为如果我不这样做,所有字段和整个textarea内容都将显示出来 当我单击课程

我在django项目中有几个模型:课程包、课程和章节

课程与CoursePack有多对多关系,在管理员中,经过一些内联编辑后,CoursePack显示以下小部件:

(这是一种课程-课程包关系)

允许我选择、编辑和创建另一门课程,该课程将自动添加到课程包中

但是,章节(“capítulo”)和课程模型通过外键关系连接,管理员上显示的小部件如下所示:

(这是一个章节-课程关系)

我对其进行了编辑,以便显示较少的字段,因为如果我不这样做,所有字段和整个textarea内容都将显示出来

当我单击课程包管理窗口中课程实例一侧的添加或编辑按钮时,会弹出一个窗口,允许我编辑或创建另一个课程

我希望能够有一个类似的机制,但通过课程管理窗口创建章节。我是否需要编辑管理员的标记,或者是否有一个小部件编辑功能来满足我的需要


如果没有,我从哪里开始呢?

好的,过了一会儿我终于找到了这个问题的答案。我忘了把它贴在这里,但现在我被提醒了,因为我刚刚得到了这个问题的“风滚草徽章”

class ChapterInline(admin.StackedInline):
model = Chapter
view_on_site = False
exclude = (
    'slug', 'text',

)
show_change_link = True
这个问题的解决方案只是这段代码。至于上面的其余代码,它很有用,因为它使内联(下面)的外观更清晰

view\u-on\u-site
配置被设置为
False
,这仅仅是因为“view-on-site”链接不起作用,出于设计原因,我认为修复它不值得

@admin.register(Course)
class CourseAdmin(admin.ModelAdmin):
    inlines = [
        ChapterInline,
    ]
    #...
出于相关原因,该公司还删除了其非相关代码

结果是:

这并不是很完美,但它确实起到了作用。唯一的问题是,首先必须创建一个章节,然后才能对其进行编辑