私はメールを送信していないdjangoアプリケーションで見ているバグを修正しようとしています。アプリケーションがうまくいきます、それは失敗しているメール機能だけです。エラーログを収集しようとしましたが、メールの送信に関連するエラーは発生しません。そこで、私はエラーを強制しようとする例を作りました。次に例を示します。DJANGO_SETTINGS_MODULE環境変数を設定するにはどうすればよいですか?
from django.core.mail import send_mail
send_mail('hi', 'hi', '[email protected]', ['[email protected]'], fail_silently=False)
私は上記のコードを実行すると、私は次のエラーを取得する:
Traceback (most recent call last):
File "dmail.py", line 14, in <module>
send_mail('hi', 'hi', '[email protected]', ['[email protected]'], fail_silently=False)
File "/data/servers/calendar_1/lib/python2.7/site-packages/django/core/mail/__init__.py", line 59, in send_mail
fail_silently=fail_silently)
File "/data/servers/calendar_1/lib/python2.7/site-packages/django/core/mail/__init__.py", line 29, in get_connection
path = backend or settings.EMAIL_BACKEND
File "/data/servers/calendar_1/lib/python2.7/site-packages/django/utils/functional.py", line 184, in inner
self._setup()
File "/data/servers/calendar_1/lib/python2.7/site-packages/django/conf/__init__.py", line 39, in _setup
raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE)
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.
私はこれにコードを変更することにより、私のテストの例を修正するために管理:
from django.core.mail import send_mail
from django.conf import settings
settings.configure(TEMPLATE_DIRS=('/path_to_project',), DEBUG=False, TEMPLATE_DEBUG=False)
send_mail('hi', 'hi', '[email protected]', ['[email protected]'], fail_silently=False)
しかし、これらの設定をsend_mail.pyに追加しようとすると、実際のアプリケーションからメールが届かないままです。私の例と私のアプリケーションの両方で見ることができるようにDJANGO_SETTINGS_MODULEをどのようにセットアップするのか、誰かが私に説明してくれますか?それに失敗すると、誰かが私が実際にログにメール関連のエラーが表示されるように、意味のあるログをdjangoで設定する方法を教えてもらえますか?あらゆるヒントやガイダンスは高く評価されます。
私はCentOSの/ Linux上でです。私のアプリケーションはoatsと呼ばれ、設定ファイルはsettings.pyと呼ばれます。だから...私はしようとしました: export DJANGO_SETTINGS_MODULE = "oats.settings" しかしそれは効果がありませんでした。テストアプリケーションはそれを取得しません。 – Matthew
最初のコードブロックで、Pythonインタプリタまたはdjangoシェルから実行していますか?シェルの場合、設定ファイルにTEMPLATE_DIRS =( '/ path_to_project'、)、DEBUG = False、TEMPLATE_DEBUG = Falseが設定されていることを確認し、--settings = oats.settingsオプションを付けてシェルを呼び出します。サーバーを実行するときは、同じ--settingsオプションを使用してください。 – perfect5th
私はシェルではなくインタプリタを使用しています。私はロギングとロギングをセットアップしようとしましたが、メールに関係するものは何も出ていません。非常にイライラ。 – Matthew