def save(self): artist = self.instance if artist: artist.name = self.cleaned_data['name'] # FIXME handle this as an override to save perhaps? artist.normalized_name = lang.normalize(self.cleaned_data['name']) else: artist = Artist(name = self.cleaned_data['name'], normalized_name = lang.normalize(self.cleaned_data['name'])) return artist
def get_or_create_artist(name): query = { 'normalized_name': normalize(name), 'defaults': { 'name': name } } artist, created = Artist.objects.get_or_create(**query) return artist
def clean_name(self): name = self.cleaned_data['name'] match_args = { 'normalized_name': lang.normalize(name) } if self.instance: match_args['id__ne'] = self.instance.pk if Artist.objects(**match_args).count() > 0: raise forms.ValidationError('Another artist with this name already exists') return name
def _venue(self, rows): if len(rows) == 0: return None info = DictForNameValue(rows) for r in ('name', 'url'): if not info.get(r): raise Exception("Venue lacks required field: %s" % r) v_kwargs = { } for field in ('name', 'url', 'address', 'city', 'neighborhood'): v_kwargs[field] = info[field] if info.get('lat') and info.get('long'): v_kwargs['location'] = [float(info.get('lat')), float(info.get('long'))] v_kwargs['normalized_name'] = normalize(v_kwargs['name']) venue, created = VenueModel.objects.get_or_create(Q(url = v_kwargs['url']), defaults = v_kwargs) return venue
def load_venues(self, venue_file): parser = CSVParser(venue_file) Venue.objects().delete() for record in parser: copy_over = ('name', 'url', 'address', 'city', 'neighborhood') v_map = { } if record.get('lat') and record.get('long'): v_map['location'] = [float(record.get('lat')), float(record.get('long'))] for field in copy_over: v_map[field] = record[field] v_map['normalized_name'] = normalize(v_map['name']) print v_map['name'] v = Venue(**v_map) v.save()
def get_artist(name): try: return Artist.objects.get(normalized_name = normalize(name)) except DoesNotExist, e: return None