django管理扩展,允许您将多个内联类混合在一起并重新排序
django-merged-inlines的Python项目详细描述
合并的内联线
合并内联是一个django应用程序,允许您合并多个内联 模型变成一个单一的形式。如果您需要 将多个作者的顺序混合在一起,因此 管理面板可以如下所示:
- 诗1的内联
- 诗2的内联
- 第1册的内联
- 诗3的内联
- 第2册的内联
而不是:
- 诗1的内联
- 诗2的内联
- 诗3的内联
- 第1册的内联
- 第2册的内联
安装
使用pip安装:
pip install django-merged-inlines
快速启动
- 将“合并的嵌入式”添加到您的已安装应用程序设置中:
INSTALLED_APPS = ( .... 'merged_inlines' )
- 在添加合并内联的应用程序的admin.py文件中, 添加:
from merged_inlines.admin import MergedInlineAdmin
- 使您的管理类成为 合并inlineadmin,并像平常一样添加内联类:
class MyFirstInline(admin.TabularInline): pass class MySecondInline(admin.TabularInline): pass class MyModelAdmin(MergedInlineAdmin): inlines = [MyFirstInline,MySecondInline] admin.site.register(MyModel,MyModelAdmin)
请注意,无论使用什么内联类(tabularinline或 stackedinline),合并的内联线当前仅呈现为表格 内联。
选项
合并字段顺序
您可以在MergedInLineAdmin类中使用合并字段顺序来设置 字段的顺序。列表/类型必须包含 将在管理中可编辑:若要从表单集中排除字段,请使用 内置modeladminexclude函数。
class MyInline(admin.TabularInline): exclude = ('my_unwanted_field') class MyModelAdmin(MergedInlineAdmin): inlines = [MyInline] merged_field_order = ('put_this_field_first','followed_by_this_field','and_then_this_one')
合并的内嵌顺序
此选项确定将使用哪个字段对合并的 内联模型。共享模型必须都有共享字段, 否则将引发异常。如果未指定字段,id 将被使用。
class BookInline(admin.TabularInline): model = Book class PoemInline(admin.TabularInline): model = Poem class AuthorAdmin(MergedInlineAdmin): merged_inline_order = 'year'
版本历史记录
- 1.0-增加了完整的测试覆盖范围。移动到django 1.7+兼容性, 与django<;1.7的兼容性降低。
- 0.2-修复了id排序和js问题,感谢@kotyy
- 0.1-初始版本