0

テンプレートから生成された自動ウェルカムメッセージがあります。これは、新しいユーザーが作成されるたびに送信されます(ユーザーモデルのpost_saveシグナルを介して)。manage.pyテストを実行する場合を除いて、すべてが正常に機能します。

Djangoは不平を言い続けます:

Problem installing fixture '.../lib/python2.7/site-packages/django/contrib/auth/fixtures/context-processors-users.xml ... TemplateDoesNotExist users/email_welcome.html

テストのためにdjango.contrib.authフィクスチャをロードしようとしたとき。

なんでそうなの?フィクスチャをロードするときにテンプレートローダーが存在しませんか?これに対する解決策は何でしょうか?

4

1 に答える 1

0

このテンプレートに問題がある理由はわかりませんが(私にとっては機能します)、おそらくフィクスチャのロード中にこの電子メールを生成したくないでしょう。rawこの状況では、シグナルとともに送信される引数を使用できます。についてのDjangoドキュメントからraw

ブール値; モデルが提示されたとおりに保存されている場合(つまり、フィクスチャをロードする場合)はTrueです。データベースがまだ一貫性のある状態になっていない可能性があるため、データベース内の他のレコードをクエリ/変更しないでください。

したがって、コードは次のようになります。

@receiver(post_save, sender=User)
def generate_email(sender, instance, created, raw, **kwargs):
    if not raw:
        # generate email from template
于 2012-11-24T17:43:25.410 に答える