django - 提高 TemplateDoesNotExist(模板名称,链 = 链)
问题描述
Traceback (most recent call last):
....
raise TemplateDoesNotExist(template_name, chain=chain)
django.template.exceptions.TemplateDoesNotExist: None
姜戈项目。
设置.py
TEMPLATES = [
{ ...
'DIRS': [ os.path.join(BASE_DIR, 'templates')],},
...]
项目树中的路径:blog/template/blog(此处为所有 .html 文件)
博客/views.py
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
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})
网址.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/', include('blog.urls')),
]
博客/urls.py
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')
]
博客/models.py
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
<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>
你能帮我解决问题吗?请
解决方案
你有一个错字PostDetail
- 你设置tamplate
而不是template
.
class PostDetail(ObjectDetailMixin, View):
model = Post
tamplate = 'blog/post_detail.html'
推荐阅读
- cadence-workflow - 了解有节奏的信号和查询
- reactjs - Storybook:你能给模板提供装饰器、参数和钩子吗?
- nginx - LB 后面的 Nginx:http_x_forwarded_for 未用于 limit_req_zone
- jpa - Spring JPA 表关系命名约定
- javascript - 如何在javascript中获取数组的聚合
- spring-cloud-gateway - 带有标题和正文的 Firehose 上的 Spring Cloud Gateway 登录请求和响应
- wordpress - 任何用于访客帐户的 woocommerce REST API?
- python - Flask App 在本地运行,但在 heroku 服务器上返回应用程序错误
- javascript - 如何使用 Javascript 从 json 请求中构造混合的 json 对象
- rust - 整数类型转换在 Rust 中会导致多少开销?