ImportError: нет модуля с именем Mail Python sendgrid - PullRequest
0 голосов
/ 27 мая 2019

User.views.py это папка Mail / views.py с ошибкой при запуске локального сервера разработки

from Mail.views import sendgrid_mail

content['url'] = input_values["host"] + "/EmailVerification/" + 
user.email + '/' + md5_key
message = render_to_string('accountverification.html', content)
# sendMail.delay("[GavaGives] Account created successfully", message, 
content['email'])
sendgrid_mail('info', user.email, '[GavaGives] Account created 
successfully', message, 'user_offline_donation')

return response("create", "success", [])

Mail.views.py

def sendgrid_mail(from_email, to_email, subject, content, template):
sg = sendgrid.SendGridClient(config('SENDGRID_API_KEY'))
mail = sendgrid.Mail()

mail.add_to(to_email)
mail.set_from(mail_from(from_email))
mail.set_subject(subject)
mail.set_html(content)

mail.add_filter('templates', 'enable', '1')
mail.add_filter('templates', 'template_id', get_templates(template))

sg.send(mail)

Settings.py это папка основного проекта / settings.py, у меня ошибка при запуске локального сервера разработки

INSTALLED_APPS = [
'django.contrib.sessions',
'corsheaders',  # CORS installation
'django_cron',  # celery
'django_crontab',  # Cron jobs
'celery',
'djcelery',
'Users',
'Campaign',
'Donor',
'Media',
'Admin',
'Common',
'CommonModules',
'Event',
'Cards',
'Mail'
]

это мой проект Папка Структура базы на Джанго. Любая помощь приветствуется. спасибо

<code><pre>
[projectname]/
├── [admin]/
├── campaign/
├── card/
├── common/
├── commonmodules/
├── donor/
├── event/
├── gavagives/
│       ├── __init__.py
│       ├── cel.py
│       ├── cronjobs.py
│       ├── custom_commands.py
│       ├── settings.py
│       ├── urls.py
│       ├── views.py
│       ├── wsgi.py
├── logs/
├── Mail/
│       ├── mail.py
│       ├── views.py
├── node_modules/
├── manage.py
├── README.rst
├── requirements.txt
├── .env
├── Users/
│       ├── __init__.py
│       ├── admin.py
│       ├── apps.py
│       ├── cronjobs.py
│       ├── models.py
│       ├── urls.py
│       ├── validations.py
│       ├── views.py
├── venv/
│       ├── include
│       ├── Lib
│       ├── Scripts
│       ├── tcl
├── License.txt 
├── .gitignore

Ответы [ 2 ]

0 голосов
/ 27 мая 2019

вам нужно импортировать сетку отправки почты Python, используя pip .

, вы вводите эту строку в блокнот или команду.

pip install mail python sendgrid

или

 pip3 install mail python sendgrid
0 голосов
/ 27 мая 2019

Согласно django documentation приложение должно содержать models, которое следует рассматривать как приложение Django. Здесь вы создаете package, поэтому вам не нужно включать его в INSTALLED_APPS. Чтобы позволить другим приложениям / пакетам / модулям в вашем проекте использовать ваши файлы в папке Mail, вам необходимо создать файл __init__.py внутри этой папки. Без файла __init__.py внутри папки Python больше не будет искать подмодули внутри этого каталога, поэтому попытки импортировать модуль потерпят неудачу. Более подробную информацию можно найти в python documentation о том, как импортировать из обычной упаковки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...