def clean(self): """ Géocoding de l'adresse pro """ logger.debug('Initialisation méthode clean step 3') if 'adresse_pro' in self.cleaned_data and 'cp_pro' in self.cleaned_data and 'ville_pro' in self.cleaned_data : logger.debug('Les champs adresse_pro, cp_pro et ville_pro sont valides') adresse = self.cleaned_data['adresse_pro'] cp = self.cleaned_data['cp_pro'] ville = self.cleaned_data['ville_pro'] location = '+'.join(filter(None, (adresse, cp, ville, 'FRANCE'))) results = get_lat_lng(location, cp) if results['status'] == 0: logger.info('La géolocalisation a échouée') msg = u"Problème de géolocalisation" self._errors["adresse_pro"] = self.error_class([msg]) self._errors["cp_pro"] = self.error_class([msg]) self._errors["ville_pro"] = self.error_class([msg]) raise forms.ValidationError("Erreure de géolocalisation de votre adresse") else: self.cleaned_data['lat_pro'] = results['lat'] self.cleaned_data['lng_pro'] = results['lng'] logger.info('La géolocalisation est un succès') return self.cleaned_data
def clean(self): print "Appel methode Clean de la class MagasinForm" if self.cleaned_data.has_key('adresse') and self.cleaned_data.has_key('cp') and self.cleaned_data.has_key('ville'): adresse = self.cleaned_data['adresse'] cp = str(self.cleaned_data['cp']) ville = self.cleaned_data['ville'] print "Les données saisies sont: %s, %s, %s" % (adresse, cp, ville) location = '+'.join(filter(None, (adresse, cp, ville, 'FRANCE'))) tmp = get_lat_lng(location, cp) lat = tmp['lat'] lng = tmp['lng'] status = tmp['status'] print "Résultat du géocodage : statut - %s, latitude - %s, longitude - %s" % (lat, status, lng) self.cleaned_data['lat'] = lat self.cleaned_data['lng'] = lng else: print "Des champs sont vides dans le formulaire : adresse, cd ou ville" pass return self.cleaned_data