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