跳转到主要内容

Django Admin的嵌套内联表单递归嵌套

项目描述

django-nested-inline

Django admin的嵌套内联支持

此包中的大部分代码来自 https://code.djangoproject.com/ticket/9025

GitHub

https://github.com/s-block/django-nested-inline

安装

pip install django-nested-inline

使用

nested_inline 添加到 INSTALLED_APPS

# models.py

from django.db import models

class TopLevel(models.Model):
    name = models.CharField(max_length=200)

class LevelOne(models.Model):
    name = models.CharField(max_length=200)
    level = models.ForeignKey('TopLevel')

class LevelTwo(models.Model):
    name = models.CharField(max_length=200)
    level = models.ForeignKey('LevelOne')

class LevelThree(models.Model):
    name = models.CharField(max_length=200)
    level = models.ForeignKey('LevelTwo')


# admin.py

from django.contrib import admin
from nested_inline.admin import NestedStackedInline, NestedModelAdmin
from example.models import *

class LevelThreeInline(NestedStackedInline):
    model = LevelThree
    extra = 1
    fk_name = 'level'


class LevelTwoInline(NestedStackedInline):
    model = LevelTwo
    extra = 1
    fk_name = 'level'
    inlines = [LevelThreeInline]


class LevelOneInline(NestedStackedInline):
    model = LevelOne
    extra = 1
    fk_name = 'level'
    inlines = [LevelTwoInline]


class TopLevelAdmin(NestedModelAdmin):
    model = TopLevel
    inlines = [LevelOneInline]


admin.site.register(TopLevel, TopLevelAdmin)

压缩JavaScript

此库的发布版本应包含一个压缩的js版本。

压缩使用uglifyjs完成。如果你的系统上已安装npm,可以使用以下命令安装uglifyjs:

npm install -g uglify-js

然后切换到包含文件'inlines-nested.js'的目录,并运行以下命令:

uglifyjs --compress --mangle --output ./inlines-nested.min.js -- inlines-nested.js

发布到PyPi

在$HOME/.pypirc创建一个文件,并将以下文本放入其中:

[pypi]
username = __token__
password = <Token from pypi>

确保已安装此项目的所有依赖项

pip install django

然后安装构建工具

pip install build

接下来运行项目的发行版构建

python -m build

最后,将发布版本推送到pypi

twine upload dist/*

变更列表

0.4.6:

  • 支持django 4.1
  • 修复内嵌媒体错误(#130)
  • 修复使用“另存为新”时的错误(#149)
  • 为django 2.1+添加.fieldBox样式(#114)
  • 修复Django >=2.2的select2导入(#150)
  • 修复FieldDoesNotExist导入以支持Django>=3.2(#147)

0.4.5 - 支持django 4.0和django-csp

0.4.4 - 添加formset:added和formset:removed事件(#97)

0.4.3 - 更新媒体,以便它期望在正确的位置找到jquery。(#75)

0.4.2 - 修复资产

0.4.1 - 修复权限检查

0.4.0 - 添加对Django 3.0的支持

0.3.7 - 添加对django 1.10的支持,修复唯一字段集ID

0.3.6 - 添加对django 1.9的支持

0.3.5 - 移除了过时的方法,并更新以支持Django 1.8/1.9

0.3.4 - 添加许可证并更新以支持python 3

0.3.3 - 修复了没有内嵌的内嵌导致错误的问题

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

django-nested-inline-0.4.6.tar.gz (19.8 kB 查看哈希)

上传时间

构建分布

django_nested_inline-0.4.6-py2.py3-none-any.whl (25.1 kB 查看哈希)

上传时间 Python 2 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面