У меня есть модель, которая выглядит следующим образом:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
bio = models.CharField(max_length=160, null=True)
avatar = models.ImageField(storage=OverwriteStorage(), upload_to=create_user_image_path,
validators=[validate_avatar],
default="default/avatars/default.jpg")
def save(self, *args, **kwargs):
super(Profile, self).save(*args, **kwargs)
if self.avatar:
image = Image.open(self.avatar.path)
image_path = self.avatar.path
image_name = self.avatar.path[:-4]
image_ext = self.avatar.path[-4:]
resize_images(image, image_path, image_name, image_ext)
image.close()
Модель также имеет свой метод сохранения по умолчанию, переопределенный для создания некоторой логики c для загруженного изображения. Однако предположим, что пользователь зарегистрировался и не имеет изображения, поэтому вместо него используется изображение по умолчанию. Поэтому, когда это происходит Profile(user=22).save()
, я не хочу использовать переопределенный метод сохранения, потому что вместо этого мы используем изображение по умолчанию, поэтому не требуется никаких дополнительных логик c. Есть ли способ, как я могу сохранить его в базе данных, а не через переопределенный метод сохранения?