Django管理插件,用于将文件附加到具有多文件选择支持的模型实例
django-attach的Python项目详细描述
django attach是一个django管理插件,用于将文件附加到具有多文件选择支持的模型实例。它的主要功能是自定义管理内联
表单。需要一个支持html5和xmlhttprequest2的现代浏览器,
,但当这些功能不可用时,会返回到普通的django内联表单。
编辑现有模型实例,并添加新的模型实例(包括验证错误,当上载的文件在更正错误之前保持与临时对象关联的
,并且可以保存实例时)。
*报告上载进度。
*报告ASYN中的任何错误如果出现长期请求。
installation
----
install from pypi或使用'setup.py':
pip install django attach
=(
…
"django-attach",
您的应用程序遵循此处。
…
)
初始化数据库表并复制静态文件:
python manage.py collectstatic
向模型添加通用关系字段:
从django_attachment.models导入附件
从django.contrib.contenttypes.generic导入genericorrelation
…
mymodel类(models.model):
…
attachments=genericorrelation(attachment)
这是访问附件i的方法。在您的程序中。
在中,您应该能够在模型的
更改和添加页面下看到内联附件。您还应该看到一个新的应用程序
django_attach,如果需要,您可以在其中编辑原始附件和临时对象
(如下所述)。
一种可能的用法是允许模型的文本字段(例如文章html内容)直接引用它们。然后,您必须提供一个视图
,该视图在适当的url下为文件提供服务(例如,通过http重定向)。
您还可能需要通过一个过滤器将html内容管道化,该过滤器修改到绝对链接的相对链接(如果您在一个url下显示多个模型的话)。
支持
----
这是django attach的早期版本。因此,它还没有在许多浏览器上进行过全面的测试。
**已知可以工作:**
*firefox 23
*chromium 27
**部分:**
*safari 6 on mountain lion(一次只允许选择一个文件)
**退回到经典表单集内联:**
*ie7
*ie8
*ie9
**breaked:**
*ie10
----
>目录[示例项目](示例项目)包含一个示例
django项目,演示django attach的使用。
有关详细信息,请参阅"示例项目/readme.md"。
ence
——
35;类附件(模型)
附件对象保存单个文件。它们通过
[内容类型](https://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/)
框架与任意
模型实例关联。
**字段**:
-**文件**-附件文件。
-**内容对象**-与附件关联的对象。
-**content_type**-关联模型的contenttype的id。
-**object_id**-关联模型的主键。
-**cr已创建**-创建附件的日期时间。
-**已修改**-上次修改附件的日期时间。
附加到尚未保存的实例的文件与临时对象关联。一旦实例被保存,它们就会被删除。
**字段**:
-**附件**-与临时对象关联的附件。
-**创建**-创建临时对象的日期时间。
-**修改**-上次修改临时对象的日期时间。
\settings
>;提交模型表单时,文件将异步上载
。如果实例尚未创建,
它们与新的临时对象相关联。保存模型实例后,它们将重新附加到实例,并在文件存储中将其移动到适当的位置(`media_root/attachment/<;model>;/<;id>;/`)。
文件删除使用普通隐藏的*-delete字段来实现。在模型表单提交时同步ed。
已知问题
----
*过时的文件(通过模型的"添加"页上载,但其关联的
模型实例最终未保存)需要在管理员的
django_attach应用程序中手动删除。这可以通过删除它们附加到的旧的临时对象来完成。
*django attach还不能完全翻译。
js.org/)和[队列](https://github.com/mbostock/queue)
从[github.com/mbostock](https://github.com/mbostock)下载。
*django attach尚未经过关于遵守
django管理模型权限的良好测试。
在BSD许可下租用。
有关详细信息,请参阅"许可"和"许可.第三方"。
文件名旁边的十字。
![](https://github.com/peterkuma/django attach/raw/master/screenshots/1.png)
提交表单时,将异步上载新附件。显示上传进度。
![](https://github.com/peterkuma/django attach/raw/master/screenshots/2.png)
表单。需要一个支持html5和xmlhttprequest2的现代浏览器,
,但当这些功能不可用时,会返回到普通的django内联表单。
编辑现有模型实例,并添加新的模型实例(包括验证错误,当上载的文件在更正错误之前保持与临时对象关联的
,并且可以保存实例时)。
*报告上载进度。
*报告ASYN中的任何错误如果出现长期请求。
installation
----
install from pypi或使用'setup.py':
pip install django attach
=(
…
"django-attach",
您的应用程序遵循此处。
…
)
初始化数据库表并复制静态文件:
向模型添加通用关系字段:
从django_attachment.models导入附件
从django.contrib.contenttypes.generic导入genericorrelation
…
mymodel类(models.model):
…
attachments=genericorrelation(attachment)
这是访问附件i的方法。在您的程序中。
在中,您应该能够在模型的
更改和添加页面下看到内联附件。您还应该看到一个新的应用程序
django_attach,如果需要,您可以在其中编辑原始附件和临时对象
(如下所述)。
一种可能的用法是允许模型的文本字段(例如文章html内容)直接引用它们。然后,您必须提供一个视图
,该视图在适当的url下为文件提供服务(例如,通过http重定向)。
您还可能需要通过一个过滤器将html内容管道化,该过滤器修改到绝对链接的相对链接(如果您在一个url下显示多个模型的话)。
支持
----
这是django attach的早期版本。因此,它还没有在许多浏览器上进行过全面的测试。
**已知可以工作:**
*firefox 23
*chromium 27
**部分:**
*safari 6 on mountain lion(一次只允许选择一个文件)
**退回到经典表单集内联:**
*ie7
*ie8
*ie9
**breaked:**
*ie10
----
>目录[示例项目](示例项目)包含一个示例
django项目,演示django attach的使用。
有关详细信息,请参阅"示例项目/readme.md"。
ence
——
35;类附件(模型)
附件对象保存单个文件。它们通过
[内容类型](https://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/)
框架与任意
模型实例关联。
**字段**:
-**文件**-附件文件。
-**内容对象**-与附件关联的对象。
-**content_type**-关联模型的contenttype的id。
-**object_id**-关联模型的主键。
-**cr已创建**-创建附件的日期时间。
-**已修改**-上次修改附件的日期时间。
附加到尚未保存的实例的文件与临时对象关联。一旦实例被保存,它们就会被删除。
**字段**:
-**附件**-与临时对象关联的附件。
-**创建**-创建临时对象的日期时间。
-**修改**-上次修改临时对象的日期时间。
\settings
>;提交模型表单时,文件将异步上载
。如果实例尚未创建,
它们与新的临时对象相关联。保存模型实例后,它们将重新附加到实例,并在文件存储中将其移动到适当的位置(`media_root/attachment/<;model>;/<;id>;/`)。
文件删除使用普通隐藏的*-delete字段来实现。在模型表单提交时同步ed。
已知问题
----
*过时的文件(通过模型的"添加"页上载,但其关联的
模型实例最终未保存)需要在管理员的
django_attach应用程序中手动删除。这可以通过删除它们附加到的旧的临时对象来完成。
*django attach还不能完全翻译。
js.org/)和[队列](https://github.com/mbostock/queue)
从[github.com/mbostock](https://github.com/mbostock)下载。
*django attach尚未经过关于遵守
django管理模型权限的良好测试。
在BSD许可下租用。
有关详细信息,请参阅"许可"和"许可.第三方"。
文件名旁边的十字。
![](https://github.com/peterkuma/django attach/raw/master/screenshots/1.png)
提交表单时,将异步上载新附件。显示上传进度。
![](https://github.com/peterkuma/django attach/raw/master/screenshots/2.png)