Updated likes to use pre filtered POST data

This commit is contained in:
Fergal Moran
2015-06-09 22:02:21 +01:00
parent 2806c04f2b
commit aee4378167
3 changed files with 4 additions and 5 deletions

View File

@@ -109,8 +109,8 @@ class MixSerializer(serializers.ModelSerializer):
mix_image = serializers.ReadOnlyField(source='get_image_url')
can_edit = serializers.SerializerMethodField()
genres = GenreSerializer(many=True, required=False, read_only=False)
likes = LikeSerializer(many=True, required=False, read_only=False) # slug_field='slug', many=True, read_only=True)
genres = GenreSerializer(many=True, required=False, read_only=True)
likes = LikeSerializer(many=True, required=False, read_only=True) # slug_field='slug', many=True, read_only=True)
favourites = serializers.SlugRelatedField(slug_field='slug', many=True, read_only=True)
plays = InlineActivityPlaySerializer(many=True, read_only=True, source='activity_plays')
downloads = InlineActivityDownloadSerializer(read_only=True, source='activity_downloads')
@@ -120,7 +120,7 @@ class MixSerializer(serializers.ModelSerializer):
# all nested representations need to be serialized separately here
try:
# get any likes that aren't in passed bundle
likes = validated_data['likes']
likes = self.initial_data['likes']
unliked = instance.likes.exclude(user__userprofile__slug__in=[l['slug'] for l in likes])
for ul in unliked:
# check that the user removing the like is an instance of the current user
@@ -138,7 +138,6 @@ class MixSerializer(serializers.ModelSerializer):
except UserProfile.DoesNotExist:
pass
validated_data.pop('likes', None)
# get any likes that aren't in passed bundle
if 'downloads' in validated_data:

View File

@@ -39,3 +39,4 @@ mutagen
django-enumfield
ipython
ipdb

View File

@@ -167,7 +167,6 @@ class Mix(BaseModel):
return self.get_waveform_url(waveform_type="_progress")
def get_image_url(self, size='200x200', default=''):
import ipdb; ipdb.set_trace()
try:
if self.mix_image.name and self.mix_image.storage.exists(self.mix_image.name):
ret = get_thumbnail(self.mix_image, size, crop='center')