2017-07-18 8 views
0

Ich habe versucht, ein Blog in meiner Domäne mit Django 1.9 und Python 3.5 mit virtueller Umgebung zu erstellen. Also während der Bereitstellung auf pythonanywhere. Ich bin in der Lage, das HTML zu rendern. Hier ist die Rückverfolgung.Vorlage existiert nicht Fehler während der Bereitstellung auf pythonanywhere

Request Method: GET
Request URL: http://www.example.com/

Django Version: 1.9
Python Version: 3.5.2
Installed Applications:

['django.contrib.admin', `  
` 'django.contrib.auth', ` 
`'django.contrib.contenttypes',`   
`'django.contrib.sessions',`  
`'django.contrib.messages',`  
`'django.contrib.staticfiles',`  
`'blog']``  

Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']

Template loader postmortem
Django tried loading these templates, in this order:

Using engine django: 
* django.template.loaders.app_directories.Loader:  
/home/pdlsaroj22/.virtualenvs/venv/lib/python3.5/site-packages/django/contrib/admin/templates/blog/templates/blog/post/list.html(Source does not exist) 
* django.template.loaders.app_directories.Loader: 
/home/pdlsaroj22/.virtualenvs/venv/lib/python3.5/site-packages/django/contrib/auth/templates/blog/templates/blog/post/list.html(Source does not exist) 
* django.template.loaders.app_directories.Loader: 
/home/pdlsaroj22/myblog/mysite/blog/templates/blog/templates/blog/post/list.html (Source does not exist) 

Using engine django: 
* django.template.loaders.app_directories.Loader: 
/home/pdlsaroj22/.virtualenvs/venv/lib/python3.5/site-packages/django/contrib/admin/templates/blog/post_list.html (Source does not exist) 
* django.template.loaders.app_directories.Loader: 
/home/pdlsaroj22/.virtualenvs/venv/lib/python3.5/site-packages/django/contrib/auth/templates/blog/post_list.html (Source does not exist) 
* django.template.loaders.app_directories.Loader: 
/home/pdlsaroj22/myblog/mysite/blog/templates/blog/post_list.html (Source does not exist) 

Traceback:

File "/home/pdlsaroj22/.virtualenvs/venv/lib/python3.5/site-packages/django/core/handlers/base.py" in get_response 
        response = `self.process_exception_by_middleware(e, request) 
File "/home/pdlsaroj22/.virtualenvs/venv/lib/python3.5/site-packages/django/core/handlers/base.py" in get_response 
        response = response.render() 
File "/home/pdlsaroj22/.virtualenvs/venv/lib/python3.5/site-packages/django/template/response.py" in render 
      self.content = self.rendered_content 
File "/home/pdlsaroj22/.virtualenvs/venv/lib/python3.5/site-packages/django/template/response.py" in rendered_content 
      template = self._resolve_template(self.template_name) 
File "/home/pdlsaroj22/.virtualenvs/venv/lib/python3.5/site-packages/django/template/response.py" in _resolve_template 
      new_template = self.resolve_template(template) 
File "/home/pdlsaroj22/.virtualenvs/venv/lib/python3.5/site-packages/django/template/response.py" in resolve_template 
      return select_template(template, using=self.using) 
File "/home/pdlsaroj22/.virtualenvs/venv/lib/python3.5/site-packages/django/template/loader.py" in select_template 
      raise TemplateDoesNotExist(', '.join(template_name_list), chain=chain) 
Exception Type: TemplateDoesNotExist at/
Exception Value: blog/templates/blog/post/list.html, blog/post_list.html 

Mein views.py sieht wie folgt aus:

class PostListView(ListView):  
    queryset = Post.published.all()  
    context_object_name = 'posts'  
     paginate_by = 3  
     template_name = 'blog/templates/blog/post/list.html'  
+0

Was sind Ihre VORLAGEN-Einstellungen? Es sieht so aus, als hätten Sie die Verzeichnisse in Ihrem lokalen Home-Verzeichnis festgeschrieben. –

+0

können Sie mir bitte Ihre settinsg.py Datei zeigen – ammy

+0

Auch, wo befindet sich Ihre list.html Datei? – karthikr

Antwort

2

Wenn u haben eine App namens Blog (wie in Ihrem settings.py registriert), und Sie haben APP_DIR auf true unter Vorlage Verzeichnisse festgelegt in settings.py, dann haben Sie wahrscheinlich ein Verzeichnis namens templates in Ihrer Blog-App und ein anderes Verzeichnis namens blog in templates.

Wenn das der Fall ist, sollte blog/templates/blog/post/list.html eigentlich wie geschrieben werden: post/list.html vorausgesetzt, Sie haben ein Post-Verzeichnis im Blog-Verzeichnis der Blog-App.

+0

Wenn dies das Problem löst, markieren Sie es als die richtige Antwort und geben Sie andernfalls ein Update. –

0

Sie müssen den Ordner mit dem Namen "templates", wo settingd.py liegen, machen, und legen Sie Ihre .html-Datei in diesem Vorlagenordner. und Änderungen in folgenden settings.py Datei:

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [os.path.join(BASE_DIR, 'templates'), ], 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
      ], 
     }, 
    }, 
] 

Und im Code tun Änderungen wie folgt:

class PostListView(ListView): 
    queryset = Post.published.all() 
    context_object_name = 'posts' 
    paginate_by = 3 
    template_name = 'list.html' 

Hoffnung diese Antwort helfen Ihnen.

Verwandte Themen