From a251926ec450652ba105db483566b0dbc42e09f9 Mon Sep 17 00:00:00 2001 From: Fergal Moran Date: Sat, 19 Dec 2015 21:45:26 +0000 Subject: [PATCH] Fixes to serializers --- api/serializers.py | 18 ++++++++++++------ spa/models/mix.py | 18 +++++++++--------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/api/serializers.py b/api/serializers.py index 96fa59c..b2866c6 100755 --- a/api/serializers.py +++ b/api/serializers.py @@ -202,6 +202,18 @@ class MixSerializer(serializers.ModelSerializer): except UserProfile.DoesNotExist: pass + genres = self.initial_data['genres'] + instance.genres.clear() + for genre in genres: + try: + g = Genre.objects.get(slug=genre.get('slug')) + instance.genres.add(g) + except Genre.DoesNotExist: + """ Possibly allow adding genres here """ + pass + + validated_data.pop('genres', None) + # get any likes that aren't in passed bundle if 'downloads' in validated_data: plays = validated_data['downloads'] or [] @@ -209,12 +221,6 @@ class MixSerializer(serializers.ModelSerializer): instance.add_play(play) validated_data.pop('downloads', None) - if 'genres' in validated_data: - genres = validated_data['genres'] or [] - for genre in genres: - instance.add_genre(genre) - validated_data.pop('genres', None) - return super(MixSerializer, self).update(instance, validated_data) except MixUpdateException as ex: raise ex diff --git a/spa/models/mix.py b/spa/models/mix.py index 8f4598a..43f3f75 100755 --- a/spa/models/mix.py +++ b/spa/models/mix.py @@ -96,7 +96,7 @@ class Mix(BaseModel): return self.__unicode__() def __unicode__(self): - return "{} - {}".format(self.user.get_nice_name(), self.title) + return "{} - {}".format(self.user.get_nice_name(), self.title) def save(self, force_insert=False, force_update=False, using=None, update_fields=None): if not self.id: @@ -117,14 +117,14 @@ class Mix(BaseModel): def create_mp3_tags(self, prefix=""): try: tag_mp3( - self.get_absolute_path(), - artist=self.user.get_nice_name(), - title=self.title, - url=self.get_full_url(), - album="Deep South Sounds Mixes", - year=self.upload_date.year, - comment=self.description, - genres=self.get_nice_genres()) + self.get_absolute_path(), + artist=self.user.get_nice_name(), + title=self.title, + url=self.get_full_url(), + album="Deep South Sounds Mixes", + year=self.upload_date.year, + comment=self.description, + genres=self.get_nice_genres()) except Exception as ex: self.logger.exception("Mix: error creating tags: %s" % ex) pass