def get_city(name): flt = dbutils.lookup_filter('name', name) try: return City.objects.exclude( type__in=[PlaceTypes.county, PlaceTypes.province]).get(flt) except City.DoesNotExist: raise Exception("No city named %r" % name)
def make_city(country_id,name=None,**kw): kw.setdefault('type',CityTypes.city) #~ kw.update() #~ if name: #~ kw.update(name=name) flt = dbutils.lookup_filter('name',name,country__isocode=country_id,**kw) try: return City.objects.exclude(type__in=[CityTypes.county,CityTypes.province]).get(flt) #~ return City.objects.exclude(type=CityTypes.county).get( #~ country__isocode=country_id,name=name) except MultipleObjectsReturned: #~ qs = City.objects.exclude(type=CityTypes.county).filter(country__isocode=country_id,name=name) logger.info("Oops, there are multiple cities for %r", name) return qs[0] except City.DoesNotExist: return city(name,country_id,**kw)
def make_city(country_id, name=None, **kw): kw.setdefault('type', PlaceTypes.city) flt = dbutils.lookup_filter( 'name', name, country__isocode=country_id, **kw) if name == "Rapla" and kw['type'].name == 'county': logger.info("20140611 fld is %s", flt) try: return Place.objects.get(flt) # return Place.objects.exclude(type__in=[ # PlaceTypes.county, PlaceTypes.province]).get(flt) except MultipleObjectsReturned: #~ qs = Place.objects.exclude(type=PlaceTypes.county).filter(country__isocode=country_id,name=name) raise Exception("Oops, there are multiple cities for %r", name) except Place.DoesNotExist: obj = city(name, country_id, **kw) obj.full_clean() obj.save() if name == "Rapla" and kw['type'].name == 'county': logger.info("20140611 DoesNotExist --> %s", obj) return obj