Я не могу переопределить модель django

У меня есть модель django, которая имеет несколько полей

class data(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    pj = ArrayField(models.IntegerField(), null=True, blank=True)
    name = models.CharField(max_length=225)
    explain = models.TextField(max_length=50, null=True)
    def save(self, *args, **kwargs):
        self.name=f"new {self.name}"
        super(data, self).save(*args, **kwargs)


Когда я сохраняю модель данных, имя не меняется на "новое имя", а сохраняется как "имя"

Я хочу, чтобы новое соглашение об именовании отражало.

Что такое "name" внутри метода save? Я думаю, что вам нужно получить доступ к нему через self.name, поэтому попробуйте следующее:

def save(self, *args, **kwargs):
    self.name=f"new {self.name}"
    super(data, self).save(*args, **kwargs)

используйте только super(). и проверьте, что вы предоставили update_fields. Если update_fields не None и имени нет в update_fields, изменение имени не сохранится.

    def save(self, update_fields, *args, **kwargs):
        print(f'{update_fields=}')
        self.name=f"new {self.name}"
        super().save(update_fields, *args, **kwargs)
Вернуться на верх