Django не может заставить пользовательскую модель Django работать с send_mail - PullRequest
0 голосов
/ 20 сентября 2019

Эта строка в представлении разрывается:

email = User.objects.filter(user=request.user).values_list('email', flat=True)
send_mail('subject', 'message','info@site.com', [email[0]])

Вот ошибка:

During handling of the above exception (Cannot resolve keyword 'user' into field. Choices are: email, first_name, last_name, username), another exception occurred:

Раньше это работало, но теперь не работает и понятия не имеет, почему.Пользователь был создан.Это базовая модель Django.

1 Ответ

0 голосов
/ 21 сентября 2019

Причиной ошибки в вашем коде является то, что в User нет поля user, поэтому при попытке фильтрации по этому полю Django выдает исключение.

Чтобы исправить эту строку, вы 'нам нужно получить id пользователя через объект request и отфильтровать его

email = User.objects.filter(id=request.user.id).values_list('email', flat=True)

Однако это не нужно, поскольку он просто вернет набор запросов, содержащий тот же пользовательский объект, что и request.Вы должны просто получить поле электронной почты непосредственно через запрос и не выполнять дополнительный запрос.

send_mail('subject', 'message','info@site.com', [request.user.email])
...