Как объединить записи двух моделей с разным набором полей? - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д