python - 为什么显示'
当我在浏览器中键入http://127.0.0.1:8000/groups/时,我在 /groups/ 处得到 NoReverseMat
问题描述
当我在浏览器中键入http://127.0.0.1:8000/groups/时,我在 /groups/ 处得到 NoReverseMatch 并且'
环境:
请求方法:GET 请求地址:http: //127.0.0.1 :8000/groups/
Django 版本:2.2.5 Python 版本:3.8.0 已安装的应用程序:['groups', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions ', 'django.contrib.messages', 'django.contrib.staticfiles', 'bootstrap3', 'accounts', 'posts'] 已安装的中间件:['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']
模板错误:在模板 C:\Users\User\Desktop\fullstack\django\simplesocialatom\simplesocial\templates\base.html 中,第 12 行错误 4 : 5 : 6 : Star Social
7 : 8 : 9 :
10 : 11 : 12 : 13 : 14 : 15 : 16 : 17 : 18 : 19 : 20 : 21 :
22 :
追溯:
反向文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\urls\base.py” 75. 额外,resolver = resolver.namespace_dict[ns]
处理上述异常期间('
内部 34 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\core\handlers\exception.py”。 response = get_response(request)
_get_response 145 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\core\handlers\base.py”。response = self.process_exception_by_middleware(e, request)
_get_response 143 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\core\handlers\base.py”。response = response.render()
渲染 106 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\response.py”。self.content = self.rendered_content
render_content 83 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\response.py”。 content = template.render(context, self._request)
渲染 61 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\backends\django.py”。返回 self.template.render(context)
渲染 171 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。返回 self._render(context)
_render 163 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。返回 self.nodelist.render(context)
渲染 937 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。bit = node.render_annotated(context)
render_annotated 904 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。返回 self.render(context)
渲染 150 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\loader_tags.py”。返回compiled_parent._render(context)
_render 163 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。返回 self.nodelist.render(context)
渲染 937 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。bit = node.render_annotated(context)
render_annotated 904 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。返回 self.render(context)
渲染 150 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\loader_tags.py”。返回compiled_parent._render(context)
_render 163 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。返回 self.nodelist.render(context)
渲染 937 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。bit = node.render_annotated(context)
render_annotated 904 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。返回 self.render(context)
渲染 62 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\loader_tags.py”。结果 = block.nodelist.render(context)
渲染 937 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。bit = node.render_annotated(context)
render_annotated 904 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。返回 self.render(context)
渲染 62 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\loader_tags.py”。结果 = block.nodelist.render(context)
渲染 937 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。bit = node.render_annotated(context)
render_annotated 904 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。返回 self.render(context)
渲染 309 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\defaulttags.py”。返回 nodelist.render(context)
渲染 937 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。bit = node.render_annotated(context)
render_annotated 904 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。返回 self.render(context)
渲染 443 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\defaulttags.py”。 url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app )
逆向文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\urls\base.py” 86. raise NoReverseMatch("%s is not a registered namespace" % key)
异常类型:/groups/ 处的 NoReverseMatch 异常值:'
这是我的相关源代码:
项目.urls.py
from django.contrib import admin
from django.urls import path, include
from . import views
urlpatterns = [
path('accounts/', include('accounts.urls', namespace='accounts')),
path('groups/', include('groups.urls', namespace='groups')),
path('accounts/', include('django.contrib.auth.urls')),
path('admin/', admin.site.urls),
path('', views.HomePage.as_view(), name='home'),
path('test/', views.TestPage.as_view(), name='test'),
path('thanks/', views.ThanksPage.as_view(), name='thanks'),
path('posts/', include('posts.urls'), name='posts'),
]
项目 settings.py 文件
INSTALLED_APPS = [
'groups',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'bootstrap3',
'accounts',
'posts',
]
groups.urls.py 文件
# GROUPS URLS.PY
from django.urls import path, include, re_path
from . import views
app_name = 'groups'
urlpatterns = [
path('', views.ListGroups.as_view(), name='all'),
path('new/', views.CreateGroup.as_view(), name='create'),
# re_path(r'posts/in/(?P<slug>[-\w]+)/$', views.SingleGroup.as_view(), name='single'),
path('posts/in/<slug:slug>/', views.SingleGroup.as_view(), name='single'),
path('join/<slug>/', views.JoinGroup.as_view(), name='join'),
path('leave/<slug>/', views.JoinGroup.as_view(), name='leave')
]
组/views.py 文件
from django.shortcuts import render, get_object_or_404
from django.contrib.auth.mixins import (LoginRequiredMixin,
PermissionRequiredMixin)
from django.contrib import messages
from django.urls import reverse
from django.views import generic
from groups.models import Group, GroupMember
class CreateGroup(LoginRequiredMixin, generic.CreateView):
fields = ('name', 'description')
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)
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(
user=self.request.user,
group__slug=self.kwargs.get('slug')
).get()
except models.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)
何时使用快速查找以及何时使用快速联合
我知道快速联合总会比快速查找快,那么使用快速查找有什么意义呢?我有一个面试问题,建议使用快速查找来解决问题。为什么它不建议快速联合。在某些情况下,快速查找是最佳选择吗?
解决方案
可能有两件事:
groups
没有出现在您的INSTALLED_APPS
参数中,这是正常的吗?
- 关于您的错误日志,您的模板中似乎有一个拼写错误,要求
/groups/
. 检查您是否有良好的报价类型,并且它们也已关闭。
推荐阅读
- sql - 仅当列值与其他列不同时才选择
- javascript - 保持包含的行
- java - 使用 Java 流根据工资检索员工部门和 ID
- postgresql - 在 Postgres 中使用非交换运算符创建排除约束
- ios - iOS 13.5 Core 蓝牙 - 扫描 scanForPeripherals(withServices:) 未发现任何外围设备
- javascript - 根据选择列表中的数字循环组件 - 反应js
- perl - Perl IPC::Run 输入文件大于 64KiB 的管道块
- validation - 无法删除 MVC 中的强制验证
- linux-device-driver - 如何使用 efivars 检索 BIOS 使用的控制台端口的详细信息?
- node.js - 如何使用 node 和 mongoose 或 mongo 对文档数组进行分页?
当我在浏览器中键入http://127.0.0.1:8000/groups/时,我在 /groups/ 处得到 NoReverseMat
问题描述
当我在浏览器中键入http://127.0.0.1:8000/groups/时,我在 /groups/ 处得到 NoReverseMatch 并且'
环境:
请求方法:GET 请求地址:http: //127.0.0.1 :8000/groups/
Django 版本:2.2.5 Python 版本:3.8.0 已安装的应用程序:['groups', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions ', 'django.contrib.messages', 'django.contrib.staticfiles', 'bootstrap3', 'accounts', 'posts'] 已安装的中间件:['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']
模板错误:在模板 C:\Users\User\Desktop\fullstack\django\simplesocialatom\simplesocial\templates\base.html 中,第 12 行错误 4 : 5 : 6 : Star Social
7 : 8 : 9 :
10 : 11 : 12 : 13 : 14 : 15 : 16 : 17 : 18 : 19 : 20 : 21 :
22 :追溯:
反向文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\urls\base.py” 75. 额外,resolver = resolver.namespace_dict[ns]
处理上述异常期间('
内部 34 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\core\handlers\exception.py”。 response = get_response(request)
_get_response 145 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\core\handlers\base.py”。response = self.process_exception_by_middleware(e, request)
_get_response 143 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\core\handlers\base.py”。response = response.render()
渲染 106 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\response.py”。self.content = self.rendered_content
render_content 83 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\response.py”。 content = template.render(context, self._request)
渲染 61 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\backends\django.py”。返回 self.template.render(context)
渲染 171 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。返回 self._render(context)
_render 163 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。返回 self.nodelist.render(context)
渲染 937 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。bit = node.render_annotated(context)
render_annotated 904 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。返回 self.render(context)
渲染 150 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\loader_tags.py”。返回compiled_parent._render(context)
_render 163 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。返回 self.nodelist.render(context)
渲染 937 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。bit = node.render_annotated(context)
render_annotated 904 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。返回 self.render(context)
渲染 150 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\loader_tags.py”。返回compiled_parent._render(context)
_render 163 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。返回 self.nodelist.render(context)
渲染 937 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。bit = node.render_annotated(context)
render_annotated 904 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。返回 self.render(context)
渲染 62 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\loader_tags.py”。结果 = block.nodelist.render(context)
渲染 937 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。bit = node.render_annotated(context)
render_annotated 904 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。返回 self.render(context)
渲染 62 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\loader_tags.py”。结果 = block.nodelist.render(context)
渲染 937 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。bit = node.render_annotated(context)
render_annotated 904 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。返回 self.render(context)
渲染 309 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\defaulttags.py”。返回 nodelist.render(context)
渲染 937 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。bit = node.render_annotated(context)
render_annotated 904 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\base.py”。返回 self.render(context)
渲染 443 中的文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\template\defaulttags.py”。 url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app )
逆向文件“C:\Users\User\Anaconda3\envs\simplesocialenv\lib\site-packages\django\urls\base.py” 86. raise NoReverseMatch("%s is not a registered namespace" % key)
异常类型:/groups/ 处的 NoReverseMatch 异常值:'
这是我的相关源代码:
项目.urls.py
from django.contrib import admin
from django.urls import path, include
from . import views
urlpatterns = [
path('accounts/', include('accounts.urls', namespace='accounts')),
path('groups/', include('groups.urls', namespace='groups')),
path('accounts/', include('django.contrib.auth.urls')),
path('admin/', admin.site.urls),
path('', views.HomePage.as_view(), name='home'),
path('test/', views.TestPage.as_view(), name='test'),
path('thanks/', views.ThanksPage.as_view(), name='thanks'),
path('posts/', include('posts.urls'), name='posts'),
]
项目 settings.py 文件
INSTALLED_APPS = [
'groups',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'bootstrap3',
'accounts',
'posts',
]
groups.urls.py 文件
# GROUPS URLS.PY
from django.urls import path, include, re_path
from . import views
app_name = 'groups'
urlpatterns = [
path('', views.ListGroups.as_view(), name='all'),
path('new/', views.CreateGroup.as_view(), name='create'),
# re_path(r'posts/in/(?P<slug>[-\w]+)/$', views.SingleGroup.as_view(), name='single'),
path('posts/in/<slug:slug>/', views.SingleGroup.as_view(), name='single'),
path('join/<slug>/', views.JoinGroup.as_view(), name='join'),
path('leave/<slug>/', views.JoinGroup.as_view(), name='leave')
]
组/views.py 文件
from django.shortcuts import render, get_object_or_404
from django.contrib.auth.mixins import (LoginRequiredMixin,
PermissionRequiredMixin)
from django.contrib import messages
from django.urls import reverse
from django.views import generic
from groups.models import Group, GroupMember
class CreateGroup(LoginRequiredMixin, generic.CreateView):
fields = ('name', 'description')
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)
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(
user=self.request.user,
group__slug=self.kwargs.get('slug')
).get()
except models.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)
何时使用快速查找以及何时使用快速联合
我知道快速联合总会比快速查找快,那么使用快速查找有什么意义呢?我有一个面试问题,建议使用快速查找来解决问题。为什么它不建议快速联合。在某些情况下,快速查找是最佳选择吗?
解决方案
可能有两件事:
groups
没有出现在您的INSTALLED_APPS
参数中,这是正常的吗?- 关于您的错误日志,您的模板中似乎有一个拼写错误,要求
/groups/
. 检查您是否有良好的报价类型,并且它们也已关闭。
推荐阅读
- sql - 仅当列值与其他列不同时才选择
- javascript - 保持包含的行
- java - 使用 Java 流根据工资检索员工部门和 ID
- postgresql - 在 Postgres 中使用非交换运算符创建排除约束
- ios - iOS 13.5 Core 蓝牙 - 扫描 scanForPeripherals(withServices:) 未发现任何外围设备
- javascript - 根据选择列表中的数字循环组件 - 反应js
- perl - Perl IPC::Run 输入文件大于 64KiB 的管道块
- validation - 无法删除 MVC 中的强制验证
- linux-device-driver - 如何使用 efivars 检索 BIOS 使用的控制台端口的详细信息?
- node.js - 如何使用 node 和 mongoose 或 mongo 对文档数组进行分页?