This simple app provides:
a Document model with:
a generic many to many relation
a file field that uploads to a private directory
a method get_download_url()
a view to download a document which allows custom security checks through a signal
a signal, document_pre_download, that is emited by the download view, and which responds with 503 if emiting the signal raises a DownloadForbidden exception
clean admin integration
south support
Install django-generic-m2m
Refer to django-generic-m2m installation documentation, do “Installation” and “Adding to your Django Project”.
Install autocomplete_light
Refer to django-autocomplete-light installation documentation, do “Quick install” and “Quick admin integration”.
Install django-documents
Download the lastest release:
pip install django-documents
Or install the development version:
pip install -e git+https://github.com/yourlabs/django-documents.git#egg=documents
Add to settings.INSTALLED_APPS:
'documents',
If using south, run:
./manage.py migrate
Else, run:
./manage.py syncdb
Add to urls.py:
url(r'^documents/', include('documents.urls')),
Set settings.DOCUMENTS_UPLOAD_TO to the absolute path where uploads should be stored. This must be a private directory.
Prepare the generic many to many autocomplete
Register a generic autocomplete, with name “AutocompleteDocumentRelations”. There is an example in test_project which is imported in urls.py. Refer the django-autocomplete-light documentation about the registry for alternative methods.
If the project already uses django-generic-m2m and django-autocomplete-light, a good solution is to re-register the project’s generic autocomplete with name=’AutocompleteDocumentRelations’, ie.:
# 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')
Secure your documents
Connect to document_pre_import, for example:
# 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)
Release files for django-documents 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django-documents-0.0.1.tar.gz | 5.3 kB | Details |
Release files / django-documents-0.0.1.tar.gz
| Download URL | django-documents-0.0.1.tar.gz |
|---|---|
| Size | 5.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3f709f879bb6b280d6f787f53a60ae0edb4ce1cde89f5859a02991383ca3d823
|
|
BLAKE2b-256 checksum How to use checksums |
51286eee26fe76a8b35773defffd2a0a30473702e4d69022d366dade59b14b77
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |