Динамическое получение атрибута от объекта для вызова функции на основе этого атрибута - PullRequest
0 голосов
/ 07 марта 2020

Я проверяю объект и ищу поле ManyToMany, которое имеет модель "Risk", а затем я хочу вызвать метод obj.somefieldname.add(). Это то, что я имею до сих пор

    for field in [f for f in obj.__class__._meta.get_fields() if isinstance(f, models.ManyToManyField)
                  and (f.related_model._meta.object_name == Risk._meta.object_name)]:
        getattr(obj, field.name).add(...)

Есть ли лучший способ сделать открытие, чем мой подход?

У меня есть две модели:

class Bar(models.Model):
   risk = models.ManyToManyField(Risk)
   ...

class Foo(models.Model):
   risk = models.ManyToManyField(Risk)
   ...

I есть функция, которая получает произвольный объект, если у объекта есть множество полей, указывающих на модель риска, я хочу добавить кое-что в поле риска множества объектов этого объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...