Как объединить записи двух моделей с разным набором полей? - Python

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Столкнулся с такой проблемой. У меня есть три таблицы: в одной находятся электронные адреса, в другой имя пользователя — эти две таблицы я объединяю в модели
В третьей таблице хранятся электронные адреса и имена пользователей, которые заказчик сам добавляет через форму. Задача - объединить данные всех таблиц так, чтобы электронный адрес каждой записи был уникальным в этой выборке. Пытался использовать itertools.chain.from_iterable, но он годится только для одного списка объектов. Делал так
Работает, но так уникальными являются электронные адреса в каждой выборке из таблиц по отдельности. Такая организация не моя заслуга, делали до меня. Добавлять данные в первые 2 таблицы нельзя, т.к. это реальные пользователи, а в третьей таблицы только имена и почты тех, кому заказчик желает отправить рассылку дополнительно. Заранее спасибо, если чего-то не хватает - дополню

Решение задачи: «Как объединить записи двух моделей с разным набором полей?»

textual
Листинг программы
# список словарей.
emails1 = Customer.objects.all().distinct('user__email').values('user__email', 'user__username)
# список емайлов
ex_email = [row['user__email'] for row in emails1]
# список словарей.
emails2 = SMail.objects.filter(~Q(email__in=ex_email)).distinct('email').values('email', 'user')
Customers = emails1.update(emails2)
print Customers

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5
Похожие ответы