将文档附加到django模型
django-documents的Python项目详细描述
这个简单的应用程序提供:
- 文档模型具有:
- 一般的多对多关系
- 上载到专用目录的文件字段
- 方法get_download_url()
- 用于下载文档的视图,该视图允许通过 信号
- 下载视图发出的一个信号,文档预下载,以及 如果发出信号引发禁止下载,则响应503 例外
- 干净的管理集成
- 南部支持
安装django-generic-m2m
请参阅django-generic-m2m installation documentation,执行“安装”和“添加到django项目”。
安装自动完成灯
参考django-autocomplete-light installation documentation,执行“快速安装”和“快速管理集成”。
安装django文档
下载最新版本:
pip install django-documents
或安装开发版本:
pip install -e git+https://github.com/yourlabs/django-documents.git#egg=documents
添加到设置。已安装的应用程序:
'documents',
如果使用南方,请运行:
./manage.py migrate
否则,运行:
./manage.py syncdb
添加到url.py:
url(r'^documents/', include('documents.urls')),
set settings.documents_upload_to上传到绝对路径 储存起来。这必须是一个私有目录。
准备通用的多对多自动完成功能
注册一个generic autocomplete, 名为“autocompletedocumentrelations”。在test_project中有一个例子,它是在urls.py中导入的。 参考django-autocomplete-light documentation about the registry 其他方法。
如果项目已经使用django-generic-m2m和django autocomplete light,则 好的解决方案是用 name='autocompletedocumentrelations',即:
# your project specific autocomplete class AutocompleteProject(autocomplete_light.AutocompleteGenericBase): # .... # register for your project needs autocomplete_light.register(AutocompleteProject) # registery for documents relations autocomplete_light.register(AutocompleteProject, name='AutocompleteDocumentRelations')
保护文档
连接到文档预导入,例如:
# project specific document permissions import documents def document_security(sender, request, document, **kwargs): if not request.user.is_staff: raise documents.DownloadForbidden() documents.document_pre_download.connect(document_security)