gpt4 book ai didi

Django 2.0 'post' 不是注册的命名空间

转载 作者:行者123 更新时间:2023-12-04 17:06:47 25 4
gpt4 key购买 nike

我正在做一个 udemy 类(class),但它是在 django 1.11 上,我试图用 2.0.0 来做。
练习是使用群组、用户和帖子进行社交网络克隆,exersize 有 3 个主要应用程序、帐户、群组和帖子。这是文件路径:

- Django exercize
- Django exercize
- groups app
- template
- groups app
- html files
- urls.py
- views.py
- posts app
- template
- posts app
- html files
- urls.py
- views.py
- accounts app
- template
- accounts app
- html files
- urls.py
- views.py

在某些时候,当我尝试加载“组列表”或“创建新组”时,服务器显示此错误:
NoReverseMatch at /groups/
'post' is not a registered namespace

这是组文件夹上创建和列表的views.py
class CreateGroup(LoginRequiredMixin,generic.CreateView):
fields = ('name','description')
model = Group
template_name = 'groups/groups_form.html'

class ListGroups(generic.ListView):
model = Group
template_name = 'groups/groups_list.html'

这是组文件夹上的 urls.py
from django.urls import path
from . import views

app_name = 'groups'

urlpatterns = [
path('',views.ListGroups.as_view(),name='all'),
path('new/',views.CreateGroup.as_view(),name='create'),
path('post/in/<slug:slug>',views.SingleGroup.as_view(),name='single'),
path('join/<str:slug>/',views.JoinGroup.as_view(),name='join'),
path('leave/<str:slug>/',views.LeaveGroup.as_view(),name='leave'),
]

这是 django 主文件夹上的 urls.py
from django.contrib import admin
from django.urls import path, include
from . import views

urlpatterns = [
path('admin/', admin.site.urls),
path('', views.HomePage.as_view(), name='home'),
path('accounts/', include('accounts.urls',namespace='accounts')),
path('accounts/',include('django.contrib.auth.urls')),
path('test/',views.TestPage.as_view(),name='test'),
path('thanks/',views.ThanksPage.as_view(),name='thanks'),
path('posts/',include('posts.urls', namespace='posts')),
path('groups/',include('groups.urls',namespace='groups')),
]

这是组应用程序文件夹上的 html 模板
{% extends "groups/groups_base.html" %}
{% block pregroup %}
<div class="col-md-4">
<div class="content">
{% if user.is_authenticated %}
<h2>Bienvenido!! <a href="{% url 'post:for_user' username=user.username %}"> @{{ user.username }}</a></h2>
{% endif %}
<h2>Grupos</h2>
<p>Bienvenido a la pagina de grupos!!</p>
</div>
{% if user.is_authenticated %}
<a href="{% url 'group:create' %}" class="btn btn-md btn-fill btn-warning">Crear Grupo!!</a>
{% else %}
{% endif %}
</div>
{% endblock pregroup %}

{% block group_content %}
<div class="col-md-8">
<div class="list-group">
{% for group in object_list %}
<a class="list-group-item" href="{% url 'group:single' slug=group.slug %">
<h3 class="title list-group-item-heading">{{ group.name }}</h3>
<div class="list-group-item-text container-fluid">
{{ group.description_html|safe }}
<dive class="row">
<div class="col-md-4">
<span class="badge">{{ group.members.count }}</span>
member{{ group.members.count|pluralize }}
</div>
<div class="col-md-4">
<span class="barde">{{ group.post.count }}</span>
post {{ group.posts.count|pluralize }}
</div>
</dive>
</div>
</a>
{% endfor %}
</div>
</div>
{% endblock group_content %}

最佳答案

在 url 你有命名空间 posts :path('posts/',include('posts.urls', namespace='posts')), .所以你应该使用 posts而不是 post在模板中:<a href="{% url 'posts:for_user' username=user.username %}"> .

关于Django 2.0 'post' 不是注册的命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49142916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com