예제 #1
0
 def save(self, request, commit=True):
     super(TracksForm, self).save(commit=commit)
     if commit:
         tracks_on_album = Track.objects.filter(
             album=self.instance).count() + 1
         for file in self.cleaned_data['tracks']:
             try:
                 file_path = file.temporary_file_path()
                 metadata = mutagen.File(file_path, easy=True)
                 if metadata and metadata.get('title'):
                     title = metadata.get('title')[0]
             except:
                 title = "untitled"
             try:
                 track = Track(audio=file,
                               title=title,
                               order=tracks_on_album,
                               album=self.instance)
                 track.full_clean()
                 track.set_upload_to_info(
                     username=self.instance.artist_profile.profile.user.
                     username,
                     track_type="albums",
                     album_title=self.instance.title)
                 tracks_on_album += 1
                 track.save()
             except ValidationError as e:
                 messages.error(request, e.messages[0] + " : " + str(file))
     return self.instance