a generic app to provide a way to handle database binary data in django
Project description
A generic app to provide a way to handle database binary data in django.
Introduction
This is a total rip-off of BinaryField class from Django 1.6+ sourcecode with some tweaks to make it work under Django 1.4+.
Installation
pip install django-binaryfield
Usage
Use BinaryField to bind your binary database columns on a django model. Like so:
from binaryfield import BinaryField class ExampleModel(models.Model): short_data = BinaryField(max_length=10, default=b'\x08') data = BinaryField()
Configuration
syncdb
Django-binaryfield works out-of-the-box with existing binary database columns that are correctly mapped in your models. If you want BinaryField to work with syncdb management command there’s one setting called BINARYFIELD_HACK_ENGINES that can be used to hack Django database backend. Use it like this:
BINARYFIELD_HACK_ENGINES = ( 'django.db.backends.sqlite3', )
It’s a list of django backends (as an “importable” strings) to mangle in order to syncdb could work properly. Did I mention that it is a hack?
Oracle issues
There are some issues with Oracle when handling parameteres in a query in Django < 1.6. You can see this link (https://github.com/django/django/commit/8aefd30379eba9aa7e5afcc69cc352adf0d23489) to see what changed in django.db.backends.oracle.base.OracleParam class regarding this feature.
There are two settings to control a fix to this issue:
BINARYFIELD_HACK_ORACLE_PARAM - determines whether or not apply the fix - Default: False
BINARYFIELD_HACK_ORACLE_PARAM_BACKENDS - an iterable of backend engines as an “importable” strings to apply the fix. - Default: [ settings.DATABASES['default']['ENGINE'] ]
TODO
Some more tests maybe?
An example view to show how to serve a file from database
try to setup travis-ci testing
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django_binaryfield-0.3.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff0a6c2e58fdc4a18aa52d6e3970f9c674a0187bc52b8d86e7a134b6d03bbbcd |
|
MD5 | 732f15d1886ea1264a1c4aac07734f68 |
|
BLAKE2b-256 | 3f6676dfd5110fee9e32352000dfd3177e0a5f001e2318036c3dc486871e14b9 |