我需要通过标题创建链接并加载每个链接生成的模板noticia_detail.html,但我遇到的问题如下:
我看错了,我认为问题出在设置文件,templates_path或其他什么内容,请帮帮我
对于由我请求的slug生成的每个URL,它会抛出:
TemplateDoesNotExist at /noticia/crea-horario/
infogeneral/noticia_detail.html
Request Method: GET
Request URL: http://localhost:1280/noticia/crea-horario/
Django Version: 1.7.1
Exception Type: TemplateDoesNotExist
Exception Value:
infogeneral/noticia_detail.html
Exception Location: C:\Python27\lib\site-packages\django\template\loader.py in select_template, line 194
Python Executable: C:\Python27\python.exe
Python Version: 2.7.5
Python Path:
['C:\\Users\\PC\\Documents\\python\\taskalertproyect\\taskalert',
'C:\\Python27\\lib\\site-packages\\setuptools-1.4.2-py2.7.egg',
'C:\\Python27\\lib\\site-packages\\django_fiber-0.11.2-py2.7.egg',
'C:\\Python27\\lib\\site-packages\\easy_thumbnails-1.4-py2.7.egg',
'C:\\Python27\\lib\\site-packages\\djangorestframework-2.3.8-py2.7.egg',
'C:\\Python27\\lib\\site-packages\\django_compressor-1.3-py2.7.egg',
'C:\\Python27\\lib\\site-packages\\pillow-2.2.1-py2.7-win-amd64.egg',
'C:\\Python27\\lib\\site-packages\\six-1.5.2-py2.7.egg',
'C:\\Python27\\lib\\site-packages\\django_appconf-0.6-py2.7.egg',
'C:\\Python27\\lib\\site-packages\\pyopenssl-0.14-py2.7.egg',
'C:\\Windows\\system32\\python27.zip',
'C:\\Python27\\DLLs',
'C:\\Python27\\lib',
'C:\\Python27\\lib\\plat-win',
'C:\\Python27\\lib\\lib-tk',
'C:\\Python27',
'C:\\Python27\\lib\\site-packages']
Server time: Lun, 3 Nov 2014 01:10:43 -0500
Template-loader postmortem
Django tried loading these templates, in this order:
Using loader django.template.loaders.filesystem.Loader:
C:\home\taskalertproyect\taskalert\infogeneral\templates\infogeneral\noticia_detail.html (File does not exist)
Using loader django.template.loaders.app_directories.Loader:
C:\Python27\lib\site-packages\django\contrib\admin\templates\infogeneral\noticia_detail.html (File does not exist)
C:\Python27\lib\site-packages\django\contrib\auth\templates\infogeneral\noticia_detail.html (File does not exist)
C:\Users\PC\Documents\python\taskalertproyect\taskalert\infogeneral\templates\infogeneral\noticia_detail.html (File does not exist)
C:\Python27\lib\site-packages\django_markdown\templates\infogeneral\noticia_detail.html (File does not exist)
的index.html
<section class="content">
{% for noticia in pagina.noticia.all %}
<article>
<div class="post">
<h1 class="title">
<a href="/noticia/{{noticia.slug}}/">{{ noticia.titulo_noticia}}</a>
</h1>
<p>{{ noticia.contenido_noticia|safe }}<p>
<a class="read_more" href="/noticia/{{noticia.slug}}/">Continue Reading <i class="read_more_arrow"></i> </a>
</div>
</article>
{% endfor %}
</section><!-- Content End -->
noticia_detail.html
<h2>{{ object.titulo_noticia }}</h2>
<p>{{ object.contenido_noticia }}</p>
urls.py
from infogeneral.views import NoticiaDetailView
url(r'^noticia/(?P<slug>[-\w]+)/$', NoticiaDetailView.as_view(),name='noticia_detail')
models.py
class Noticia(models.Model):
titulo_noticia = models.CharField(max_length=100)
slug = models.SlugField(null=True, editable=False)
def save(self, *args, **kwargs):
if not self.id:
self.slug = slugify(self.titulo_noticia)
super(Noticia, self).save(*args, **kwargs)
views.py
from django.views.generic import ListView, DetailView
from .models import Noticia
class NoticiaDetailView(DetailView):
tamplate_name = 'noticia_detail.html'
context_object_name = 'noticias'
model = Noticia
settings.py
TEMPLATES_URL = '/templates/'
TEMPLATE_DIRS = (
'C:/Users/PC/Documents/python/taskalertproyect/taskalert/infogeneral/templates',
)
答案 0 :(得分:0)
无法加载您的模板。 Django尝试从错误消息底部给出的位置加载它但在那里找不到它。确保模板位于正确的位置。根据错误消息,正确的位置将在C:\Users\PC\Documents\python\taskalertproyect\taskalert\infogeneral\templates\infogeneral\noticia_detail.html
上。
此外,您的设置似乎反映了UNIX / Linux系统,但输出显示Windows。你应该更新路径。