Я хочу сделать какой-то фрагмент кода, когда моя модель вставляется и когда он обновляет другой фрагмент кода. У меня есть эта модель с переопределенным методом save (). Идея состоит в том, чтобы выполнить этот код только для вставки. Как я могу сказать django когда вставлять, когда обновлять и какой код выполнять для каждого?
class Galeria(models.Model):
galeriaid = models.AutoField(db_column='GaleriaID', primary_key=True)
nombre = models.CharField(db_column='Nombre', max_length=128, blank=True, null=True)
ruta = models.FileField(db_column='Ruta', max_length=512, blank=True, null=True)
def save( self, force_insert=False, force_update=False, *args, **kwargs):
super( Galeria, self ).save( *args, **kwargs )
ruta = self.ruta
if ruta:
oldfile = self.ruta.name
dot = oldfile.rfind( '.' )
newfile = str( self.pk ) + oldfile[dot:]
if newfile != oldfile:
self.ruta.storage.delete( newfile )
if newfile.endswith(".jpg"):
self.ruta.storage.save( "imagenes/" + str(timezone.now().strftime("%Y/%m/")) + str(newfile), ruta )
self.ruta.name = "imagenes/" + str(timezone.now().strftime("%Y/%m/")) + str(newfile)
elif newfile.endswith(".mp4"):
self.ruta.storage.save( "videos/" + str(timezone.now().strftime("%Y/%m/")) + str(newfile), ruta )
self.ruta.name = "videos/" + str(timezone.now().strftime("%Y/%m/")) + str(newfile)
else:
self.ruta.storage.save( newfile, ruta )
self.ruta.name = newfile
self.ruta.close()
self.ruta.storage.delete( oldfile )
super( Galeria, self ).save( *args, **kwargs )