'Validate subject_location preserving last saved value.
Last valid value of the subject_location field is shown to the user
for subject location widget to receive valid coordinates on field
validation errors.'

def clean_subject_location(self):

    cleaned_data = super(ImageAdminForm, self).clean()
    subject_location = cleaned_data['subject_location']
    if (not subject_location):
        return subject_location
    coordinates = normalize_subject_location(subject_location)
    if (not coordinates):
        err_msg = ugettext_lazy('Invalid    subject    location    format.    ')
        err_code = 'invalid_subject_format'
    elif ((coordinates[0] > self.instance.width) or (coordinates[1] > self.instance.height)):
        err_msg = ugettext_lazy('Subject    location    is    outside    of    the    image.    ')
        err_code = 'subject_out_of_bounds'
    else:
        return subject_location
    self._set_previous_subject_location(cleaned_data)
    raise forms.ValidationError(string_concat(err_msg, ugettext_lazy('Your    input:    "{subject_location}".    '.format(subject_location=subject_location)), 'Previous    value    is    restored.'), code=err_code)
