Или вы можете использовать сигналы django для запуска событий, когда элементы собираются или были сохранены в базе данных.
В частности, вы используете метод Signal.connect () для подключения обработчика сигнала, который вы хотите запустить, например pre_save
, post_save
, pre_delete
, post_delete
и т. д.
Для настройки:
signal.py :
from django.db.models.signals import *
def entry_action_post_save(sender, instance, **kwargs):
# what do we want to do here?
pass
post_save.connect (entry_action_post_save, sender=Entry)
Где для меня Entry
это models.Model
производный класс.
В этом блоге также рассматривается альтернативный способ его настройки с помощью диспетчера в models.py .
Обратите внимание, что поскольку вы рассматриваете кодирование видеоздесь вы, возможно, не захотите перекодировать видео внутри этих методов, иначе ваш запрос будет длиться вечно.Лучшим способом было бы проверить кодировку, и иметь модель с полем status
для webM
или notwebm
.Затем передайте свою задачу кодирования в другом месте и не отображайте видео (Videos.objects.filter(format='webm'
), пока оно не будет завершено.