当使用Django“开箱即用”管理表单时,对于复杂模型(包含大量字段),“更改表单”页面可能会相当长。任何方式在django管理站点添加标签表单?
我想在“改变形式”使用标签,这样的事情可以更可读(通过标签组字段...)
而是由我自己做这一切的,由modifiying的“change_form。 html'管理模板,我想知道是否有人已经这样做了,并想分享代码,或者现有的Django插件是否已经存在。
预先感谢您回答
当使用Django“开箱即用”管理表单时,对于复杂模型(包含大量字段),“更改表单”页面可能会相当长。任何方式在django管理站点添加标签表单?
我想在“改变形式”使用标签,这样的事情可以更可读(通过标签组字段...)
而是由我自己做这一切的,由modifiying的“change_form。 html'管理模板,我想知道是否有人已经这样做了,并想分享代码,或者现有的Django插件是否已经存在。
预先感谢您回答
我不知道这是很容易做到开箱即用,但为什么不把字段的字段集,并让这些字段集可折叠?它可能稍微不太理想,但是可以开箱即用。有一个在tutorial一个例子:
class PollAdmin(admin.ModelAdmin):
fieldsets = [
(None, {'fields': ['question']}),
('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
]
在这个例子中,“最新信息”字段集可以折叠,只是标题栏。
我知道三个选项来做到这一点:
我已经写了一个小应用很容易做到这一点:https://github.com/omji/django-tabbed-admin
它试图以与字段集相同的方式来保持django逻辑。你只是从标签模型继承你的管理类。你也可以将它与inline混合并按照你想要的方式排列它们。例如:
class BandAdmin(TabbedModelAdmin):
tab_overview = (
(None, {
'fields': ('name', 'bio', 'style')
}),
MusicianInline,
('Contact', {
'fields': ('agent', 'phone', 'email')
})
)
tab_album = (
AlbumInline,
)
tabs = [
('Overview', tab_overview),
('Albums', tab_album)
]