Skip to main content

a generic app to provide a way to handle database binary data in django

Project description

https://drone.io/bitbucket.org/slafs/django-binaryfield/status.png

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

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

django-binaryfield-0.3.2.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_binaryfield-0.3.2-py2.py3-none-any.whl (7.1 kB view details)

Uploaded Python 2Python 3

File details

Details for the file django-binaryfield-0.3.2.tar.gz.

File metadata

File hashes

Hashes for django-binaryfield-0.3.2.tar.gz
Algorithm Hash digest
SHA256 e7121a2abde5071214097eaa2ad86115e466793e5dc9354623eaab80a4665d46
MD5 d7e5a390fdc71b6abb0004d24b0c65fb
BLAKE2b-256 94bd1b6201e8458c8666dfc2682a93923846ad35aac1dfffbb81cd037eec6147

See more details on using hashes here.

File details

Details for the file django_binaryfield-0.3.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for django_binaryfield-0.3.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 32f4bfbe07114a006c61fa2407bedb99b291625b9a59ca1bca84efb36f0a6eb3
MD5 699f168a549e224d7a7e85eb4d74f10a
BLAKE2b-256 d716b1a95a67ef001e1919e901688454aad1d4ad681d6edc1d06d1af26dacce5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page