Django File Context

https://gitlab.sigmageosistemas.com.br/dev/django-file-context/badges/master/coverage.svghttps://gitlab.sigmageosistemas.com.br/dev/django-file-context/badges/master/pipeline.svghttps://readthedocs.org/projects/django-file-context/badge/?version=latest

File Context provides an easy way to store different documents/attachments

Documentation

The full documentation is at https://django-file-context.readthedocs.io.

Quickstart

Install Django File Context:

pip install django-file-context

Add it to your INSTALLED_APPS:

INSTALLED_APPS = (
    ...
    'file_context.apps.FileContextConfig',
    ...
)

You need to add this to your INSTALLED_APPS, because we have our own models.

Add Django File Context’s URL patterns:

from file_context import urls as file_context_urls


urlpatterns = [
    ...
    url(r'^', include(file_context_urls)),
    ...
]

This is optional. Actually, you can include your own URLs.

Features

  • Generic File model so you can store different kinds of files, images,

etc, using a single model; * Attach/Detach the file model to other models * Cool descriptor, so you don’t have to keep mangling GenericForeignKeys inside your models.

Usage

  1. First of all, define your first model
:: python

from file_context.managers import Files

class MyModel(models.Model):

name = models.CharField(max_length=128)

files = Files()

  1. That’s it.
  2. You can use the Files API to attach files to MyModel instances, using:

:: python

uploaded_file = File.objects.get(pk=1) a = MyModel.objects.create(name=’foo’) a.files.attach(uploaded_file) a.files.detach(uploaded_file) a.files.clear()

Running Tests

Does the code actually work?

source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install tox
(myenv) $ tox

Credits

Tools used in rendering this package:

  • Huge props to django-taggit that inspired me to do the descritor

idea!