Я не могу переопределить модель 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)