Переопределите метод save
и дайте любое имя, которое вы хотите дать своему файлу изображения.
def uniqueimage(name):
image_name = "Logic to uniquely name the image"
return image_name
class Payment(models.Model):
Address = models.CharField(max_length=255)
Payment_ID = models.ImageField(upload_to='pay_proof/')
Status = models.CharField(max_length=5, default="X")
Review_result = models.CharField(max_length=255, default="Not yet reviewed")
created = models.DateTimeField(auto_now_add=True)
def save(self, *args, **kargs):
if self.Payment_ID:
self.Payment_ID.name = uniqueimage(str(self.Payment_ID.name))
super(Payment, self).save(*args, **kwargs)
ПРИМЕЧАНИЕ: Помните, что это не будет работать, если вы напрямую обновите поле методом .update
.