def import_score(headers, score_row): """Create a score.""" areas = Area.objects.filter(ident=score_row[headers.index('OWMIDENT')]) areas = areas.filter(data_set__name__in=WATERBEHEERDER_DATASET.values) area = None if areas.exists(): area = areas[0] measuring_rod_obj = MeasuringRod.objects.get( code=score_row[headers.index('DOMGWCOD')]) score = Score(area=area, area_ident=area.ident, measuring_rod=measuring_rod_obj) score.save() return score
def insert(self, krw_scores): """Insert new measures.""" count = 0 for krw_score in krw_scores: score = Score(**krw_score.scoreAsDict()) scores = Score.objects.filter( **{'measuring_rod': score.measuring_rod, 'area': score.area}) scoreid = krw_score.identificatie.scoreid if scores.exists(): logger.warning("Score id {} exists.".format(scoreid)) continue try: logger.debug("insert score {0} for area {1}.".format( krw_score.chemischeStof.parameter, score.area.ident)) score.save() count += 1 except: logger.exception("Cannot insert score {}.".format(scoreid)) logger.info("Parsed scores {}.".format(len(krw_scores))) logger.info("Inserted scores {}.".format(count))