Невозможно переопределить модель save () - PullRequest
0 голосов
/ 13 июня 2019

Попытка выполнить некоторый код, когда модель профиля обновляется, но кажется, что метод save никогда не вызывается, поскольку оператор print никогда не показывает.

Profile.objects.filter(user__id=1).update(field_a='test')

models.py

class Profile(models.Model):
    def save(self, *args, **kwargs):
        print("Test")
        super(Profile, self).save(*args, **kwargs)

1 Ответ

0 голосов
/ 13 июня 2019

Нет, метод сохранения не вызывается.См. документы по update():

Наконец, осознайте, что update() выполняет обновление на уровне SQL и, таким образом, не вызывает никаких методов save() вваши модели, и при этом он не излучает сигналы pre_save или post_save (которые являются следствием вызова Model.save()).Если вы хотите обновить группу записей для модели, имеющей пользовательский метод save(), зациклите их и вызовите save(), например:

for e in Entry.objects.filter(pub_date__year=2010):
    e.comments_on = False
    e.save()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...