Django - Получение списка значений одного кверисета из двух связанных моделей
У меня есть модель пользователя
class User(AbstractBaseUser):
name = models.CharField(max_length=100, default='Default')
email = models.EmailField(
verbose_name='email address',
max_length=255,
unique=True,
)
active = models.BooleanField(default=True)
и связанная с ней модель SecondaryEmails
class SecondaryEmails(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='secondary_emails')
email = models.EmailField()
is_validated = models.BooleanField(default=False)
Теперь я хочу создать метод для получения value_list, содержащего как email модели User, так и все email, хранящиеся в связанной модели SecondaryEmails.
Я могу получить список_значений, содержащий только email модели User
>>> User.objects.filter(email='test@gmail.com').prefetch_related('secondary_emails').values_list('email')
>>> <QuerySet [('test@gmail.com',)]>
Связанная модель SecondaryEmails содержит еще два письма 'a1@gmail.com', 'a2@gmail.com'. Я хотел, чтобы эти два письма также были добавлены в values_list() следующим образом:
<QuerySet [('test@gmail.com',), ('a1@gmail.com',), ('a2@gmail.com',)]>
Заранее благодарю вас.
у связанного email должно быть поле с именем 'secondary_emails__email', поэтому его нужно включить в values_list():
User.objects.filter(email='test@gmail.com').prefetch_related('secondary_emails').values_list('email', 'secondary_emails__email')