class InstagramDemographicsAnaliticsCreator(object):
def __init__(self, data):
self.data = data
self.instagram = self.get_instagram()
self.analitics = InstagramDemographicsAnalitics()
def get_instagram(self):
try:
instagram = Instagram.objects.get(userid=self.data.get('userid'))
except Instagram.DoesNotExist:
# Какие-то действия, например логирование.
# дальше мы уже не пойдем
def process(self):
# Проверка на то что есть self.instagram
# Если всё окей, берем имена полей из модели InstagramDemographicsAnalitics
# и для каждого имени вызываем метод этого класса, метод возвращает данные в нужном виде
# или вызывает исключение которые мы ловим в этом методе. Если вернул данные, то записываем их
# в self.analitics, а в конце вызываем self.analitics.save()
# Предположим что модель Б это Email, а модель А Company
class Email(models.Model)
company = models.ForeignKey(Copmany, related_name='emails')
address = models.TextField(max_length=255)
company = Company.objects.last()
company.emails.all()
# Тем самым у Компании может быть неограниченно много емаилов.