【问题标题】:Django - URL and namespaceDjango - URL 和命名空间
【发布时间】:2019-02-01 01:03:13
【问题描述】:

我正在 Book 应用程序中构建一个 Django 模板,并使用 URL 标签重定向到 Account 应用程序的 URL。但上面写着account' is not a registered namespace

book.urls:

app_name = 'book'
urlpatterns = [
    path('', views.HomePageView.as_view(), name='home'),
    path('account/', include('account.urls', namespace='account'))
]

book.views:

class HomePageView(generic.TemplateView):
    template_name = 'book/home.html'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['all_books'] = Book.objects.all()
        return context

templates/book/home.html:

<div id="register">
    <p>
        <a href="{% url 'account:register' %}"> Sign Up </a>
    </p>
</div>

帐户/网址:

app_name='account'
urlpatterns=(
    path('register/', views.RegisterView.as_view(), name='register'),
    path('successful/', views.successful_created, name='successful'),
)

【问题讨论】:

    标签: python django


    【解决方案1】:

    您面临的问题主要是因为您试图从book app 定义account app。你需要做的是

    在与settings.py 位于同一目录的主项目urls.py 中,添加bookaccount 应用程序。

    urlpatterns = [
        url(r'^book/', include('book.urls', namespace="book")),
        url(r'^account/', include('account.urls', namespace="account")),
    ]
    

    现在您的 book.urls 将如下所示:

    app_name = 'book'
    urlpatterns = [
        path('', views.HomePageView.as_view(), name='home')
    ]
    

    account/urls 将如下所示:

    app_name='account'
    urlpatterns=(
        path('register/', views.RegisterView.as_view(), name='register'),
        path('successful/', views.successful_created, name='successful'),
    )
    

    【讨论】:

    • @Jinx 很高兴我能帮上忙。然后,您应该投票并接受答案。 :)
    • 这是许多新贡献者在收到正确答案时不知道该怎么做的事情。因此,在最初的几天里,大多数新贡献者都知道该做什么以及如何做。
    • 哈哈没关系。当我的声望未满 15 岁时,我曾经尝试过投票,但我无法做到。
    【解决方案2】:

    我相信如果您删除 namespace = account 并只使用 path('account/', include('account.urls') 它将正常工作。

    【讨论】:

    • 我试过了,这样不行。这就是我添加 namespace='account' 的原因。
    • 看看下面是我自己的配置,它可以工作:urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^api/v1.0/',包括('api.urls')),]
    猜你喜欢
    • 1970-01-01
    • 2015-12-16
    • 2016-04-15
    • 2013-11-09
    • 2018-12-04
    • 2019-06-14
    • 1970-01-01
    • 2010-12-27
    • 2017-03-13
    相关资源
    最近更新 更多