Your error is that you are trying to assign the image to the model field using request.POST, when you actually need to use form.cleaned_data like so:
justtesting.picture = form.cleaned_data['picture']
Your clean method on the form is not doing anything currently. You could do validation (although that is not neccessary) by using a clean method something like this:
def clean_image(self):
image = self.cleaned_data.get('image', None)
if image:
# do some validation, if it fails
raise forms.ValidationError(u'Form error')
return image
For an example that validates the image size see this question: https://stackoverflow.com/a/16425455/1744645
Using PIL/Pillow is not necessary and only required if you want to some form of image processing. You could have a save method on your model, for example to resize the image:
def save(self,force_insert=False, force_update=False, *args, **kwargs):
# save everything else
super(Newmodel, self).save(force_insert, force_update)
if self.image:
if self.image.width > 300 or self.image.height > 300:
resize_image(self.image)
PIL/Pillow itself has the following basic operations that might be of interest:
img = PIL.open(PATH_TO_IMAGE)
img = img.resize((x, y), PIL.ANTIALIAS)
img = img.crop((0, 0, x, y))
img.save(path,quality=90)
But see http://effbot.org/imagingbook/pil-index.htm for the full docs.