2017-01-31 3 views
0

Ich habe einen Fehler fest, dassKann nicht url finden

Page not found (404) 
Request Method: GET 
Request URL: `http://localhost:8000/accounts/registration/accounts/registration/accounts/registration/accounts/profile.html` . 

Ich denke, Routen sind falsch Aber ich kann nicht verstehen, wie die Routen zu beheben.

Konten app schrieb ich in urls.py

from django.conf.urls import url 
from . import views 
from django.contrib.auth.views import login, logout 

urlpatterns = [ 
    url(r'^login/$', login, 
     {'template_name': 'registration/accounts/login.html'}, 
     name='login'), 
    url(r'^logout/$', logout, name='logout'), 
    url(r'^regist/$', views.regist,name='regist'), 
    url(r'^regist_save/$', views.regist_save, name='regist_save'), 
    url(r'^registration/accounts/registration/accounts/profile.html$', views.regist_save, name='regist_save'), 
] 

in views.py

@require_POST 
def regist_save(request): 
    form = RegisterForm(request.POST) 
    if form.is_valid(): 
     user = form.save() 
     login(request, user) 
     context = { 
      'user': request.user, 
     } 
     return redirect('registration/accounts/profile.html', context) 


    context = { 
     'form': form, 
    } 
    return render(request, 'registration/accounts/regist.html', context) 

in Konten (Kinder app) /templates/registration/accounts/profile.html Verzeichnis ,

{% extends "registration/accounts/base.html" %} 
{% block content %} 
user.username: {{ user.username }}<hr> 
user.is_staff: {{ user.is_staff }}<hr> 
user.is_active: {{ user.is_active }}<hr> 
user.last_login: {{ user.last_login }}<hr> 
user.date_joined: {{ user.date_joined }} 
{% endblock %} 

Antwort

1

Sie haben hier einige ernsthafte Missverständnisse.

Sie können keine Vorlage ohne Ansicht haben. Sie haben eine Vorlage für das Profil geschrieben, aber Sie haben keine Ansicht geschrieben. Sie benötigen die Ansicht, die die Profildaten lädt und dann die Vorlage profile.html rendert.

Zweitens hat Ihre URL nichts mit dem Speicherort der Vorlage zu tun; Wie Sie in register_save getan haben, sollten Sie eine sinnvolle URL definieren, die auf diese Ansicht verweist - für das Profil möchten Sie wahrscheinlich etwas wie r'^profile/$'.

So soll der fünfte Eintrag in Ihrem urls.py sein:

url(r'^profile/$', views.profile, name='profile'), 

und Sie müssen eine entsprechende Funktion profile in views.py benannt.

Schließlich, wenn Sie umleiten müssen Sie einen tatsächlichen URL-Eintrag verwenden - wieder hat es nichts mit Vorlagen zu tun. So in Ihrer regist_save Ansicht sollten Sie tun:

return redirect('profile')