Even with cleaning the data provided, it's still saved as the original input
def clean(self):
cleaned_data = self.cleaned_data
url = cleaned_data.get('url')
# if url is not empty and doesn't start with 'http://'
if url and not url.startswith('http://'):
url = 'http://' + url
cleaned_data['url'] = url
return cleaned_data