forms.py
832 Bytes
import base64
import StringIO
from django import forms
from django.utils.translation import ugettext_lazy as _
from PIL import Image
from .models import Badge
class BadgeForm(forms.ModelForm):
image = forms.ImageField(label=_(u'Image'))
class Meta:
model = Badge
fields = (
'title', 'description', 'image', 'user_attr', 'comparison',
'value', 'awardees'
)
def save(self, commit=True):
instance = super(BadgeForm, self).save(commit=False)
img = Image.open(self.cleaned_data['image'])
img = img.resize((50, 50), Image.ANTIALIAS)
f = StringIO.StringIO()
img.save(f, 'png')
instance.image_base64 = f.getvalue().encode('base64')
f.close()
if commit:
instance.save()
return instance