開発サーバー上のプロジェクト内で Django 登録を使用しています。新しいユーザーを登録するとき、アクティベーション リンクを取得するために EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend' を使用します。アクティベーション リンクを Web ブラウザに入力しようとすると、エラーが発生し、アカウントがアクティベートされません。
それは言われています:
ありがとうございました。この関数は、キーを生成するために使用されます。
def create_profile(self, user):
"""
Create a ``RegistrationProfile`` for a given
``User``, and return the ``RegistrationProfile``.
The activation key for the ``RegistrationProfile`` will be a
SHA1 hash, generated from a combination of the ``User``'s
username and a random salt.
"""
salt = hashlib.sha1(str(random.random())).hexdigest()[:5]
username = user.username
if isinstance(username, unicode):
username = username.encode('utf-8')
activation_key = hashlib.sha1(salt+username).hexdigest()
return self.create(user=user,
activation_key=activation_key)
そのメールを受け取りました。しかし、私は EMAIL_BACKEND'django.core.mail.backends.filebased.EmailBackend' を使用しています。
問題はここからだと思います。しかし、本番サーバーでテストすることはできません。
私は実際に問題を解決しました。これは、開発目的でdjangoが提供するファイルメールバックエンドのおかげで、ファイル内で送信するメールを生成したためです。このファイル内で、キャリッジ リターンがある場合、= 文字が追加されます。これは、アカウントをアクティブにするためのリンクの場合です。