- 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
- Automatically setup raw_id_fields ForeignKey & OneToOneField by agusmakmun 6 months, 1 week ago
- Crispy Form by sourabhsinha396 7 months ago
- ReadOnlySelect by mkoistinen 7 months, 1 week ago
- Verify events sent to your webhook endpoints by santos22 8 months, 1 week ago
- Django Language Middleware by agusmakmun 8 months, 3 weeks ago