Django - класс CreateView, как запустить специальную функцию после успеха?

У меня есть форма, где пользователь может ввести название песни и загрузить .wav файл

в моем файле views.py:

from django.views.generic import CreateView
from django.contrib.auth.mixins import LoginRequiredMixin
from .forms import AudioCompositionForm

class AddAudio(LoginRequiredMixin, CreateView):
    form_class = AudioCompositionForm
    template_name = 'audio_test/add_audio.html'

У меня есть специальная функция, которая конвертирует wav в mp3. Как я могу запустить эту функцию после успешной загрузки? Будет идеально, если я смогу передать новый объект <class 'audio_test.models.AudioComposition'> в мою функцию audio_convert. Спасибо

Вы можете использовать сигнал post_save в вашей модели. https://docs.djangoproject.com/en/3.2/ref/signals/#post-save

используйте form_valid для успешной загрузки

class AddAudio(LoginRequiredMixin, CreateView):
form_class = AudioCompositionForm
template_name = 'audio_test/add_audio.html'

def form_valid(self, form):
    # Everything you write here is related to success upload
Вернуться на верх