2017-12-26 9 views
0

このdjangoチュートリアルでは、ブログサイトを作成しています。このアカウントでは、ユーザーのログインフォームを作成しています。残念ながら、「アカウント」は登録済みの名前空間ではありません。私はこれを修正?アカウントは登録済みネームスペースではありません

アプリ "アカウント" のための私の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 %} 

これらは私のベースURLです:

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

あなたは、アンダースコアを逃したからだと信じて:

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

# app_name not appname 
app_name= 'accounts' 


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

あなたはプロジェクトのURLに名前空間を逃しました。

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), 

] 
関連する問題