- August 5, 2009
- django model field base64 blob base64field
- 5 (after 5 ratings)
This Base64Field class can be used as an alternative to a BlobField, which is not supported by Django out of the box.
The base64 encoded data can be accessed by appending _base64 to the field name. This is especially handy when using this field for sending eMails with attachment which need to be base64 encoded anyways.
class Foo(models.Model): data = Base64Field() foo = Foo() foo.data = 'Hello world!' print foo.data # will 'Hello world!' print foo.data_base64 # will print 'SGVsbG8gd29ybGQh\n'
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
import base64 from django.db import models class Base64Field(models.TextField): def contribute_to_class(self, cls, name): if self.db_column is None: self.db_column = name self.field_name = name + '_base64' super(Base64Field, self).contribute_to_class(cls, self.field_name) setattr(cls, name, property(self.get_data, self.set_data)) def get_data(self, obj): return base64.decodestring(getattr(obj, self.field_name)) def set_data(self, obj, data): setattr(obj, self.field_name, base64.encodestring(data))
More like this
- Repeat blocks with new context / simple Jinja-like macro system by miracle2k 7 years, 11 months ago
- base64 encoding/decoding property for storing binary data in Django TextFields. by bikeshedder 6 years ago
- elif for smart if tag by showell 6 years ago
- testdata tag for templates by showell 6 years, 2 months ago
- Ajax API class by kcarnold 7 years ago