我一直收到这个错误:
TemplateDoesNotExist at /groups/
groups/group_base.html
Template-loader postmortem
Error during template rendering需要注意的是,这篇文章来自一个教程,该教程使用的是django和python的旧版本,但我使用的是它们的最新版本。
它似乎在group_base.html的第一行出现了问题:
{%扩展"groups/group_base.html“%}
这是group_base.html
simplesocial/groups/templates/groups/group_base.html
{% extends 'base.html' %}
{% block content %}
<div class="container">
<div class="row">
{% block pregroup %}{% endblock %}
{% block group_content %}{% endblock %}
{% block postgroup %}{% endblock %}
</div>
</div>
{% endblock %}idk如果问题出在urls.py上:
simplesocial/groups/template/urls.py
#GROUPS URL.PY
from django.conf.urls import url
from groups import views
app_name = 'groups'
urlpatterns = [
url(r'^$', views.ListGroups.as_view(), name='all'),
url(r'^new/$', views.CreateGroup.as_view(), name='create'),
url(r'^posts/in/(?P<slug>[-\w]+)/$', views.SingleGroup.as_view(), name='single'),
url(r'^join/(?P<slug>[-\w]+)/$', views.JoinGroup.as_view(), name='join'),
url(r'^leave/(?P<slug>[-\w]+)/$', views.LeaveGroup.as_view(), name='leave'),
]或者,如果它在视图中:
simplesocial/groups/views.py:
from django.shortcuts import render
from django.contrib import messages
# Create your views here.
from django.contrib.auth.mixins import (LoginRequiredMixin,
PermissionRequiredMixin)
from django.core.urlresolvers import reverse
from django.views import generic
from django.shortcuts import get_object_or_404
from groups.models import Group, GroupMember
# from groups import models
class CreateGroup(LoginRequiredMixin, generic.CreateView):
fields = ('name', 'description') #This is related to the Group model
model = Group
class SingleGroup(generic.DetailView):
model = Group
class ListGroups(generic.ListView):
model = Group
class JoinGroup(LoginRequiredMixin, generic.RedirectView):
def get_redirect_url(self, *args, **kwargs):
return reverse('groups:single',kwargs={'slug':self.kwargs.get('slug')})
def get(self, request, *args, **kwargs):
group = get_object_or_404(Group, slug=self.kwargs.get('slug'))
try:
GroupMember.objects.create(user=self.request.user, group=group) #this group is linked to the group instantiated above.
except IntegrityError:
messages.warning(self.request, 'Warning already a member!')
else:
messages.success(self.request,'You are now a member!')
return super().get(request, *args, **kwargs)
class LeaveGroup(LoginRequiredMixin, generic.RedirectView):
def get_redirect_url(self, *args, **kwargs):
return reverse('groups:single',kwargs={'slug':self.kwargs.get('slug')})
def get(self, request, *args, **kwargs):
try:
# membership = models.GroupMember.objects.filter(
membership = GroupMember.objects.filter(
user=self.request.user,
group__slug=self.kwargs.get('slug')
).get()
#except models.GroupMember.DoesNotExist:
except GroupMember.DoesNotExist:
messages.warning(self.request, 'Sorry, you are not in this group!')
else:
membership.delete()
messages.success(self.request, 'You have left the group')
return super().get(request, *args, **kwargs)下面是回溯:
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/groups/
Django Version: 3.1.1
Python Version: 3.8.3
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'bootstrap3',
'accounts',
'groups',
'posts']
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.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Template loader postmortem
Django tried loading these templates, in this order:
Using engine django:
* django.template.loaders.filesystem.Loader: /Users/homepage/Desktop/My_Django_Stuff/simple_social_clone/simplesocial/templates/groups/group_base.html (Source does not exist)
* django.template.loaders.app_directories.Loader: /Users/homepage/opt/anaconda3/lib/python3.8/site-packages/django/contrib/admin/templates/groups/group_base.html (Source does not exist)
* django.template.loaders.app_directories.Loader: /Users/homepage/opt/anaconda3/lib/python3.8/site-packages/django/contrib/auth/templates/groups/group_base.html (Source does not exist)
* django.template.loaders.app_directories.Loader: /Users/homepage/opt/anaconda3/lib/python3.8/site-packages/bootstrap3/templates/groups/group_base.html (Source does not exist)
* django.template.loaders.app_directories.Loader: /Users/homepage/Desktop/My_Django_Stuff/simple_social_clone/simplesocial/accounts/templates/groups/group_base.html (Source does not exist)
* django.template.loaders.app_directories.Loader: /Users/homepage/Desktop/My_Django_Stuff/simple_social_clone/simplesocial/groups/templates/groups/group_base.html (Source does not exist)
* django.template.loaders.app_directories.Loader: /Users/homepage/Desktop/My_Django_Stuff/simple_social_clone/simplesocial/posts/templates/groups/group_base.html (Source does not exist)
Template error:
In template /Users/homepage/Desktop/My_Django_Stuff/simple_social_clone/simplesocial/groups/templates/groups/group_list.html, error at line 1
groups/group_base.html
1 : {% extends "groups/group_base.html" %}
2 :
3 : {% block pregroup %}
4 : <div class="col-md-4">
5 : <div class="content">
6 : {% if user.is_authenticated %}
7 : <h2>Welcome Back!
8 : <a href="{% url 'posts:for_user' username=user.username %}">
9 : @{{user.username}}
10 : </a>
11 : </h2>
Traceback (most recent call last):
File "/Users/homepage/opt/anaconda3/lib/python3.8/site-packages/django/template/backends/django.py", line 61, in render
return self.template.render(context)
File "/Users/homepage/opt/anaconda3/lib/python3.8/site-packages/django/template/base.py", line 170, in render
return self._render(context)
File "/Users/homepage/opt/anaconda3/lib/python3.8/site-packages/django/template/base.py", line 162, in _render
return self.nodelist.render(context)
File "/Users/homepage/opt/anaconda3/lib/python3.8/site-packages/django/template/base.py", line 938, in render
bit = node.render_annotated(context)
File "/Users/homepage/opt/anaconda3/lib/python3.8/site-packages/django/template/base.py", line 905, in render_annotated
return self.render(context)
File "/Users/homepage/opt/anaconda3/lib/python3.8/site-packages/django/template/loader_tags.py", line 127, in render
compiled_parent = self.get_parent(context)
File "/Users/homepage/opt/anaconda3/lib/python3.8/site-packages/django/template/loader_tags.py", line 124, in get_parent
return self.find_template(parent, context)
File "/Users/homepage/opt/anaconda3/lib/python3.8/site-packages/django/template/loader_tags.py", line 103, in find_template
template, origin = context.template.engine.find_template(
File "/Users/homepage/opt/anaconda3/lib/python3.8/site-packages/django/template/engine.py", line 129, in find_template
raise TemplateDoesNotExist(name, tried=tried)
The above exception (groups/group_base.html) was the direct cause of the following exception:
File "/Users/homepage/opt/anaconda3/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/Users/homepage/opt/anaconda3/lib/python3.8/site-packages/django/core/handlers/base.py", line 202, in _get_response
response = response.render()
File "/Users/homepage/opt/anaconda3/lib/python3.8/site-packages/django/template/response.py", line 105, in render
self.content = self.rendered_content
File "/Users/homepage/opt/anaconda3/lib/python3.8/site-packages/django/template/response.py", line 83, in rendered_content
return template.render(context, self._request)
File "/Users/homepage/opt/anaconda3/lib/python3.8/site-packages/django/template/backends/django.py", line 63, in render
reraise(exc, self.backend)
File "/Users/homepage/opt/anaconda3/lib/python3.8/site-packages/django/template/backends/django.py", line 84, in reraise
raise new from exc
Exception Type: TemplateDoesNotExist at /groups/
Exception Value: groups/group_base.htmlthnx
发布于 2020-10-03 19:35:55
在group_list.html的第1行,尝试使用:
{% extends "group_base.html" %}
告诉我它有没有用。
https://stackoverflow.com/questions/64183366
复制相似问题