允许嵌套内联的Django管理类
项目描述
django-nested-admin 是一个项目,它使得在 InlineModelAdmin 类中定义内联 (即嵌套内联) 成为可能。它与 Django 3.2+ 和 Python 3.7+ 兼容,并支持或不需要 Grappelli。当 Grappelli 没有安装时,它允许类似 Grappelli 的拖放功能。
安装
推荐通过 PyPI 安装 django-nested-admin
pip install django-nested-admin
或者,也可以从源代码安装 django-nested-admin 的开发副本
pip install -e git+git://github.com/theatlantic/django-nested-admin.git#egg=django-nested-admin
如果源代码已经检出,使用 setuptools 安装
python setup.py develop
配置
要在项目中使用 django-nested-admin,必须在 settings 中的 INSTALLED_APPS 中添加 "nested_admin"
INSTALLED_APPS = (
# ...
'nested_admin',
)
如果你使用 django-grappelli,还需要将 nested_admin.urls 添加到你的 urlpatterns
urlpatterns = [
# ...
path('_nested_admin/', include('nested_admin.urls')),
]
示例用法
为了使用 django-nested-admin,请使用以下类替代其 django admin 等效类
django.contrib.admin |
nested_admin |
ModelAdmin |
NestedModelAdmin |
InlineModelAdmin |
NestedInlineModelAdmin |
StackedInline |
NestedStackedInline |
TabularInline |
NestedTabularInline |
还有 nested_admin.NestedGenericStackedInline 和 nested_admin.NestedGenericTabularInline,它们是 django.contrib.contenttypes.admin 中 GenericStackedInline 和 GenericTabularInline 的嵌套版本。
# An example admin.py for a Table of Contents app
from django.contrib import admin
import nested_admin
from .models import TableOfContents, TocArticle, TocSection
class TocArticleInline(nested_admin.NestedStackedInline):
model = TocArticle
sortable_field_name = "position"
class TocSectionInline(nested_admin.NestedStackedInline):
model = TocSection
sortable_field_name = "position"
inlines = [TocArticleInline]
class TableOfContentsAdmin(nested_admin.NestedModelAdmin):
inlines = [TocSectionInline]
admin.site.register(TableOfContents, TableOfContentsAdmin)
测试
django-nested-admin 具有相当广泛的测试覆盖率。运行测试的最佳方式是使用 tox,它在所有支持的 Django 安装上运行测试。在虚拟环境中运行测试时,从存储库目录中运行 pytest。测试需要安装 selenium webdriver。默认情况下,测试使用 phantomjs 运行,但也可以通过将 --selenosis-driver=chrome 传递给 pytest 或在运行 tox 时运行 tox -- --selenosis-driver=chrome 来使用 chrome webdriver。有关可用选项的完整列表,请参阅 pytest --help。
贡献
此项目使用 webpack 来构建其 JavaScript 和 CSS。要安装构建过程的依赖项,请在存储库根目录中运行 npm install。然后,您可以通过运行 npm run build 来重新构建静态文件。
许可
django 代码根据 简化版 BSD 许可证 许可。在根目录下的 LICENSE 文件中查看完整的许可和版权信息。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪一个,请了解有关安装包的更多信息。