django TemplateDoesNotExist,生成的网址

时间:2014-11-03 06:56:22

标签: python django url

我需要通过标题创建链接并加载每个链接生成的模板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',
)

1 个答案:

答案 0 :(得分:0)

无法加载您的模板。 Django尝试从错误消息底部给出的位置加载它但在那里找不到它。确保模板位于正确的位置。根据错误消息,正确的位置将在C:\Users\PC\Documents\python\taskalertproyect\taskalert\infogeneral\templates\infogeneral\noticia_detail.html上。

此外,您的设置似乎反映了UNIX / Linux系统,但输出显示Windows。你应该更新路径。

相关问题