2012-11-24 8 views
0

새 사용자가 생성 될 때마다 (사용자 모델의 post_save 신호를 통해) 전송되는 템플릿에서 자동 환영 메시지가 생성됩니다. manage.py 테스트를 실행하는 경우를 제외하고 모든 것이 제대로 작동합니다.장고 테스트 : 조명기를로드 할 때 TemplateDoesNotExist. 왜?

장고 불평 유지 :

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

테스트를 위해 django.contrib.auth 설비를로드하려고합니다.

왜 그렇습니까? 조명기를 로딩 할 때 템플릿 로더가 나타나지 않습니까? 이것에 대한 해결책은 무엇일까요?

답변

0

이 템플릿에 문제가있는 이유는 모르겠지만 (아마도 저에게 적합합니다), 조명기를 설치하는 동안이 이메일을 생성하고 싶지 않은 것 같습니다. 이 상황에서는 신호와 함께 전송되는 raw 인수를 사용할 수 있습니다. 장고 docs에서 raw :

부울; 모델이 제시된대로 정확하게 저장되면 참입니다 (즉, 조명기를로드하는 경우). 데이터베이스의 다른 레코드를 쿼리하거나 수정하면 데이터베이스가 아직 일관성있는 상태가 아닐 수 있습니다.

그래서 코드는 다음과 같이한다 : 팁을위한

@receiver(post_save, sender=User) 
def generate_email(sender, instance, created, raw, **kwargs): 
    if not raw: 
     # generate email from template 
+0

감사합니다. 원시는 아마 갈 길입니다. 이메일 전송을위한 별도의 테스트를 별도로 추가해야합니다. –

관련 문제