Django TemplateDoesNotExists in production(仅适用于存在的单个模板)

时间:2014-03-22 18:12:41

标签: django django-templates django-views celery

我知道这个问题以前经常被问过,但没有其他人帮我解决问题。 我从运行在Elastic Beanstalk上的Django应用程序中获取了TemplateDoesNotExists,有趣的部分是:

  1. 我的django设置已完美定义
  2. 模板存在(我可以在我的ec2上ssh并在另一个中看到它)
  3. 在未找到模板的同一文件夹中,有另一个成功使用的模板
  4. 在该文件夹中输入ls -hal,我可以看到两者具有相同的用户/组/权限:

      

    -rw-rw-rw- 1 wsgi root 2.2K 3月22日16:12 BaseEmailTemplate.html

         

    -rw-rw-rw- 1 wsgi root 312 Mar 22 16:12 DefaultNewsletterTemplate.html

  5. 在我的本地机器上我没有问题(#34;适用于我的机器" TM:D)

  6. 现在,该模板( DefaultNewsletterTemplate.html )的特殊性正在被加载"手动"使用loader.get_template

    from django.template.loader import get_template
    get_template('the_app/the_template.html')
    

    因为我使用它来在Celery任务中呈现我的简报......但是再次对于用于每次电子邮件通信的 BaseEmailTemplate.html 也是如此( DefaultNewsletterTemplate.html 扩展它)...所以发生了什么?我该怎么做?

1 个答案:

答案 0 :(得分:1)

解决! 事实证明,问题与Celery使用的用户(并由Supervisor管理)有关,而这些用户没有正确的权限。使用root用户完美无缺!