accounts不是注册的命名空间

时间:2017-12-26 01:35:07

标签: python django

在这个django教程中,我们正在创建一个博客网站,在此,我们正在为用户创建一个登录表单,不幸的是我得到并且错误地说" accounts"不是注册名称空间,我该如何解决这个问题?

我的urls.py文件,用于应用"帐户":

from django.conf.urls import url
from.import views

 appname= 'accounts'


 urlpatterns=[
   url(r'^signup/$', views.signup_view, name= "signup"),
   url(r'^login/$', views.login_view, name = "login" ),

我对应用的views.py:

 from django.shortcuts import render, redirect
 from django.contrib.auth.forms import UserCreationForm, AuthenticationForm



 def signup_view(request):
     if request.method== 'POST':
        form= UserCreationForm(request.POST)
        if form.is_valid():
          form.save()
        #log the user in

        return redirect('narticle:list')
    else:
      form=UserCreationForm()
    return render (request,'accounts/accounts_signup.html', {'form': form})

   def login_view(request):
        if request.method == "POST":
        form = AuthenticationForm(data= request.POST)
          if form.is_valid():
            return redirect('narticle:list')


      else:
          form = AuthenticationForm()

      return render(request, 'accounts/login.html',{'form': form})

我的基本布局是:

 {% load static from staticfiles %}


 <!DOCTYPE html>
 <html>
   <head>
     <title>Narticle</title>
     <link rel="stylesheet" href="{%static 'styles.css'%}">
   </head>
   <body>
 <div class="wrapper">
   <h1> <a href="{% url 'narticle:list' %}">narticle </a> </h1>

   {% block content %}
   {% endblock %}
 </div>

   </body>
 </html>

登录模板是:

 {% extends 'base_layout.html'%}


 {%block content%}
  <h1> log in</h1>

  <form class="site-form" action="{% url 'accounts:login' %}" method="post">
    {% csrf_token %}
    {{form}}

    <input type="submit" name="log_in" value="login">

  </form>


 {% endblock %}

这些是我的基本网址:

 from django.conf.urls import url, include
 from django.contrib import admin
 from. import views
 from django.contrib.staticfiles.urls import staticfiles_urlpatterns
 from django.conf.urls.static import static
 from django.conf import settings


 urlpatterns = [
     url(r'^admin/', admin.site.urls),
     url(r'^accounts/', include ('accounts.urls')),
     url(r'^narticle/', include ('narticle.urls')),
     url(r'^about/$', views.about),
     url(r'^$',views.homepage),

 ]
 urlpatterns+= staticfiles_urlpatterns()

 urlpatterns+= static(settings.MEDIA_URL, document_root= settings. 
 MEDIA_ROOT)

2 个答案:

答案 0 :(得分:3)

相信它,因为你错过了下划线:

[] == None
null == None
() == None
...

答案 1 :(得分:0)

您错过了项目网址中的命名空间。

urlpatterns = [
     url(r'^admin/', admin.site.urls),
     url(r'^accounts/', include ('accounts.urls', namespace='accounts')),
     url(r'^narticle/', include ('narticle.urls')),
     url(r'^about/$', views.about),
     url(r'^$',views.homepage),

 ]