首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >提升TemplateDoesNotExist(template_name,chain=chain)

提升TemplateDoesNotExist(template_name,chain=chain)
EN

Stack Overflow用户
提问于 2018-10-15 18:08:37
回答 1查看 2.8K关注 0票数 0
代码语言:javascript
运行
复制
Traceback (most recent call last):
....
raise TemplateDoesNotExist(template_name, chain=chain)
django.template.exceptions.TemplateDoesNotExist: None

Django项目。

settings.py

代码语言:javascript
运行
复制
TEMPLATES = [
{   ...
    'DIRS': [ os.path.join(BASE_DIR, 'templates')],}, 
  ...]

项目树中的路径:博客/模板/博客(这里是所有.html文件)

博客/views.py

代码语言:javascript
运行
复制
from django.views.generic import View
from django.shortcuts import render
from django.shortcuts import get_object_or_404
from .models import Post, Tag
from .utils import ObjectDetailMixin

def posts_list(request):
   posts = Post.objects.all()
   return render(request, "blog/index.html", context={'posts':posts})


class PostDetail(ObjectDetailMixin, View):
   model = Post
   tamplate = 'blog/post_detail.html'

class TagDetail(ObjectDetailMixin, View):
   model = Tag
   template = 'blog/tag_detail.html'

def tags_list(request):
   tags = Tag.objects.all()
   return render(request,'blog/tags_list.html',
   context={'tags': tags})

博客/utils.py

代码语言:javascript
运行
复制
from django.shortcuts import render
from django.shortcuts import get_object_or_404
from .models import *

class ObjectDetailMixin:
    model = None
    template = None

def get(self, request, slug):
    obj = get_object_or_404(self.model,
    slug__iexact=slug)
    return render(request, self.template,
    context={self.model.__name__.lower():obj})

urls.py

代码语言:javascript
运行
复制
from django.contrib import admin
from django.urls import path, include


urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/', include('blog.urls')),
]

博客/urls.py

代码语言:javascript
运行
复制
from django.urls import path
from .views import *

urlpatterns = [
    path('', posts_list, name='posts_list_url'),
    path('post/<str:slug>/', PostDetail.as_view(), 
name='post_detail_url'),
    path('tags/', tags_list, name='tags_list_url'),
    path('tag/<str:slug>', TagDetail.as_view(), name='tag_detail_url')
 ]

blog/models.py

代码语言:javascript
运行
复制
from django.db import models
from django.shortcuts import reverse
# Create your models here.
class Post(models.Model):
    title = models.CharField(max_length=150, db_index=True)
    slug = models.SlugField(max_length=150, unique=True)
    body = models.TextField(blank=True)
    tags = 
    models.ManyToManyField('Tag',blank=True,related_name='posts')
    date_pub = models.DateTimeField(auto_now_add=True)

   def get_absolute_url(self):
       return reverse('post_detail_url', kwargs={'slug':self.slug})

   def __str__(self):
       return self.title

 class Tag(models.Model):
     title = models.CharField(max_length=50)
     slug = models.SlugField(max_length=50,unique=True)

     def get_absolute_url(self):
         return reverse('tag_detail_url', kwargs={'slug': self.slug})

     def __str__(self):
         return self.title

post_card_template.html

代码语言:javascript
运行
复制
<div class="card mb-4">
<div class="card-header">
  {{ post.date_pub}}
</div>
<div class="card-body">
  <h5 class="card-title">{{post.title}}</h5>
  <p class="card-text">{{post.body|truncatewords:10}}</p>
  <a href="{{ post.get_absolute_url }}" class="btn btn-light">Read</a>
</div>
<div class="card-footer text-muted">
  Tags:
  {% for tag in post.tags.all %}
    <a href="{{ tag.get_absolute_url }}"> {{ tag.title }}</a>
  {% endfor %}
 </div>

你能帮我解决这个问题吗?请

EN

回答 1

Stack Overflow用户

发布于 2018-10-15 18:12:12

您在PostDetail中有一个拼写错误-您设置的是tamplate而不是template

代码语言:javascript
运行
复制
class PostDetail(ObjectDetailMixin, View):
   model = Post
   tamplate = 'blog/post_detail.html'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52814320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档