Как объединить записи двух моделей с разным набором полей? - 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