2017-02-11 3 views
0

Я использую django-simple-captcha, и он работает нормально локально. Страница это на дает ошибку 500 раз развернут Heroku (единственный выход журнала я получаю (2017-02-11T13:26:07.367450+00:00 heroku[router]: at=info method=GET path="/contact/" host=fathomless-harbor-1234.herokuapp.com request_id=37555c3c-c468-40cb-a142-c7dd04519e2c fwd="73.163.191.194" dyno=web.1 connect=1ms service=83ms status=500 bytes=386).django-simple-captcha break heroku deploy

Я побежал и получил три неудачных тестов, все из которых имеют подобную ошибку File "/Users/pmn/.virtualenvs/within/lib/python2.7/site-packages/django/template/loader.py", line 43, in get_template raise TemplateDoesNotExist(template_name, chain=chain) TemplateDoesNotExist: captcha_test/image.html

Я на Джанго 1.9.6 и Джанго-простой-капчи 0.5.3

forms.py

from django import forms 
from django.template.loader import get_template 
from django.core.mail import EmailMultiAlternatives 

from captcha.fields import CaptchaField 


class ContactForm(forms.Form): 

    contact_name = forms.CharField() 
    contact_email = forms.EmailField() 
    contact_phone = forms.CharField() 
    content = forms.CharField(widget=forms.Textarea) 
    cc_me = forms.BooleanField(required=False, initial=False) 
    captcha = CaptchaField(required=True) 

    def send_email(self): 
     contact_name = self.data["contact_name"] 
     contact_phone = self.data["contact_phone"] 
     contact_email = self.data["contact_email"] 
     content = self.data["content"] 

     template = get_template("contact.txt") 

     context = { 
      "contact_name": contact_name, 
      "contact_phone": contact_phone, 
      "contact_email": contact_email, 
      "content": content, 
     } 

     content = template.render(context) 
     subject, from_email, to = "Inquiry", contact_email, "[email protected]" 
     cc_address = contact_email if "cc_me" in self.data else None 
     email = EmailMultiAlternatives(
      subject, 
      content, 
      from_email, 
      ["[email protected]"], 
      cc=[cc_address], 
      headers={"Reply-To": contact_email} 
     ) 
     email.send() 

    def __init__(self, *args, **kwargs): 
     super(ContactForm, self).__init__(*args, **kwargs) 
     for field in self.fields: 
      self.fields[field].widget.attrs['class'] = 'form-control' 

(Заметим, что если я закомментировать две капчи линии, загрузки страницы на развертывании)

+0

Замечание, если есть более подробные журналы, я был бы признателен, если бы вы могли указать их. – thumbtackthief

+0

У вас есть незафиксированные изменения в 'settings.py' локально? Или вы используете разные настройки на Heroku? Похоже, приложение не может быть в вашем 'INSTALLED_APPS'. – Chris

+0

Нет, и это определенно в 'INSTALLED_APPS'. Я должен пояснить, что, хотя он работает локально, запуск тестового набора локально приводит к трем неудачным тестам, все с вышеуказанной ошибкой. По-видимому, это не влияет ни на что локальное. – thumbtackthief

ответ

0

Проблема была связана с миграцией базы данных на Heroku. heroku run python manage.py makemigrations и heroku run python manage.py migrate исправлено.

 Смежные вопросы

  • Нет связанных вопросов^_^