Как вызвать метод сохранения Django при обновлении - PullRequest
0 голосов
/ 14 мая 2019

Я бы хотел «отключить» метод update(), по сути заставив его вызывать save для каждого объекта в django.Как бы я это сделал?В настоящее время у меня есть:

  class HandleQuerySet(QuerySet):
      def update(self, *args, **kwargs):
          for x in self:
              x.save()

Но, похоже, это не передача аргументов методу сохранения - например, он ничего не сохраняет.Как бы я правильно сделал это?

1 Ответ

1 голос
/ 14 мая 2019

Хотите обновить поля, которые передаются?Вам нужно обновить x с аргументами, переданными как kwargs.Один из способов сделать это с помощью setattr:

class HandleQuerySet(QuerySet):
    def update(self, *args, **kwargs):
        for x in self:
            for k, v in kwargs.items():
                setattr(x, k, v)
            x.save()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...