可编辑字段以添加内联模板
django-inlineedit的Python项目详细描述
django内联编辑
Django模型的内联编辑
安装
使用pip安装最新的稳定版本
`pip install django-inlineedit`
或者
在顶级克隆存储库中运行以下命令:
“轻松安装。”
最后,确保jquery加载在任何使用内联编辑的模板上。例如,在页眉添加以下内容:
^{pr2}$快速启动
将inlineedit
添加到项目设置中的INSTALLED_APPS
(请参见下面的依赖项)
将path(<url for form submission>, include('inlineedit.urls'))
添加到基url。Django inlineedit将使用您指定的任何URL,但请确保它不会与应用程序中的现有URL冲突!在
在模板中,使用以下内容加载模板标记:
{% load inlineedit %}
然后添加django inlineedit JS是一个合适的位置(例如在模板的底部<body>
)。jQuery必须在之前加载:
{% inlineedit_default_script %}
要向字段添加内联编辑,请使用inlineedit
模板标记。例如:
{% inlineedit "my_object.my_field" %}
这将添加在对象my_object
中编辑my_field
所需的HTML和JS。无需进一步配置,当鼠标悬停在字段上时,标记将显示字段并显示编辑链接。单击一次将打开一个编辑元素和接受/拒绝按钮。单击前者接受任何更改,单击后者取消更改。在
外键可以按预期进行转换:
{% inlineedit "my_object.my_child_object.my_field" %}
访问控制
默认行为是对具有编辑特定模型字段的更改权限的用户。在
若要更改此行为,请将设置中的INLINEEDIT_EDIT_ACCESS
设置为一个可调用函数,该函数以用户、模型实例和字段类为参数,并在允许编辑的情况下返回True。在
应用程序中还有两个附加选项。access.is_staff
和{access.has_perm
实现默认行为。示例:
INLINEEDIT_EDIT_ACCESS = inlineedit.access.is_staff
访问控制也可以在适配器级别实现,如下所述
自定义适配器
适配器协调django inlineedit如何解释各种字段和模板表单或小部件。用户可以定义自己的适配器来支持新类型的字段和小部件。在
Django inlineedit提供了三个自定义适配器:markdown
、ckeditor
和{
要创建新适配器,请创建一个从inlineedit.adaptors.basic.BasicAdaptor
派生的类,并根据需要重新实现其方法。最常见的情况是您想要重写form_field
和/或display_value
。这些函数分别返回表单字段和可编辑字段的HTML表示。在
创建自定义适配器后,通过定义INLINEEDIT_ADAPTORS
字典,在项目设置文件中注册它。例如:
INLINEEDIT_ADAPTORS = {
"custom-adaptor": "main.adaptors.ExampleCustomAdaptor",
}
最后,通过它的INLINEEDIT_ADAPTORS
键来引用新适配器。例如:
{% inlineedit "my_object.my_custom_field" "custom-adaptor" %}
额外的参数
inlineedit模板标记可以处理某些额外的参数
Parameter | Options | Description |
---|---|---|
template | 'inlineedit/default.html' (the default), 'inlineedit/fixed.html' or any other template of your choice | Chose template used to render inlineedit links and forms |
任何其他位置参数或命名参数都会传递给适配器构造函数。在
自定义适配器中的访问控制
您也可以通过重写has_edit_perm(user)
来控制对适配器级别编辑的访问。例如,下面将允许任何人编辑使用ExampleCustomAdaptor
的特定字段:
class ExampleCustomAdaptor:
def has_edit_perm(user):
return True
依赖项:
需要安装jquery 3.3.1或更高版本。在
支持与其他库集成(可选)
- 在
django反转
不需要配置,django inlineedit将只使用django reversion只要 作为你的模特装饰着@复归登记()
在 - 在
Django CKEditor公司
cEditor适配器需要5.9.0或更高版本才能工作。例如:
{% inlineedit "my_object.my_field" "ckeditor" %}
或者
在{% inlineedit "my_object.my_field" "ckeditor" "toolbar" %}
- 在
降价
Python库标记是适配器工作所必需的
在{% inlineedit "my_object.my_field" "markdown" %}
运行示例
- cd到要运行的示例的根目录中(在examples文件夹下)
- 运行
python3 manage.py migrate
以设置本地sqlite3数据库。在 - 运行
python3 manage.py runserver
为示例启动一个本地开发服务器。在
开源许可证
此产品依赖于以下软件和媒体包
引导程序版本4.0是在MIT License下授权的
- 项目
标签: