我正在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'),
)
答案 0 :(得分:4)
您面临的问题主要是因为您试图从account
应用程序定义book
应用程序。您需要做的是
在与urls.py
相同目录的主项目settings.py
中,添加 book 和 account 应用。
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')
]
帐户/网址如下所示:
app_name='account'
urlpatterns=(
path('register/', views.RegisterView.as_view(), name='register'),
path('successful/', views.successful_created, name='successful'),
)
答案 1 :(得分:0)
我相信,如果您删除命名空间= account并仅使用path('account /',include('account.urls'),它将可以正常工作。