'Override clean method.
We need at least the country of the user.
If a user supplies a city or a region, we can extract
the data from there.'

def clean(self):

    super(LocationForm, self).clean()
    country = self.cleaned_data.get('country')
    region = self.cleaned_data.get('region')
    city = self.cleaned_data.get('city')
    if ((not city) and (not country) and (not region)):
        msg = _(u'Please    supply    your    location    data.')
        raise forms.ValidationError(msg)
    if region:
        self.cleaned_data['country'] = region.country
    if city:
        self.cleaned_data['country'] = city.country
        self.cleaned_data['region'] = city.region
    return self.cleaned_data
