簡體   English   中英

attributeerror:'模塊'對象沒有屬性'register_success'

[英]attributeerror: 'module' object has no attribute 'register_success'

我有一個帶有日志應用程序的項目。 我刪除了它,並做了一個注冊應用程序以集成數據庫,如果您沒有注冊,您不能登錄.....但是當我運行服務器我的Django項目時。 我在reg應用程序中遇到屬性錯誤,但不知道如何解決。

REG / urls.py

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^$', views.login, name='login'),
    url(r'^$', views.auth_view, name='auth_view'),
    url(r'^$', views.loggedin, name='loggedin'),
    url(r'^$', views.invalid_login, name='invalid_login'),
    url(r'^$', views.register_user, name='register_user'),
    url(r'^$', views.logout, name='logout'),
    url(r'^$', views.register_success, name='register_success'),

 ]

REG / views.py

from django.shortcuts import render
from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect
from django.contrib import auth
from django.core.context_processors import csrf
def login(request):
    c = {}
    c.update(csrf(request))
    return render_to_response('login.html', c)

def auth_view(request):
    username = request.POST.get('username', '')
    password = request.POST.get('password', '')
    user = auth.authenticated(username=username, password=password)

    if user is not None:
        auth.login(request, user)
        return HttpResponseRedirect('loggedin')
    else:
        return HttpResponseRedirect('invalid')

def loggedin(request):
    return render_to_response('loggedin.html',
                          {'full_name': request.user.username})
def invalid_login(request):
    return render_to_response('invalid_login.html')
def logout(request):
    auth.logout(request)
    return render_to_response('logout.html')
def register_user(request):
    if request.method == 'POST':
        form = UserCreationForm(request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('register_success')


    args = {}
    args.update(csrf(request))

    args['form'] = UserCreationForm()

    return render_to_response('register.html', args)
def register_success(request):
    return render_to_response('register_success.html')

網站/ urls.py

from django.conf.urls import include, url
from django.contrib import admin
from django.contrib.auth import views as auth_views 
from django.contrib.auth import views
from log.forms import LoginForm

urlpatterns = [
url(r'^admin/', admin.site.urls),    
url(r'^aps/', include('aps.urls')),
url(r'^mail/', include('mail.urls')),
url(r'^reg/', include('reg.urls')),
url(r'^reg/register_success/$', views.register_success),
url(r'^reg/register/$', views.register_user),
url(r'^reg/invalid/$', views.invalid_login),
url(r'^reg/loggedin/$', views.loggedin),
url(r'reg/login/$', views.login),
url(r'reg/logout/$', views.logout),
url(r'reg/auth/$', views.auth_view),


]

您不需要將reg/urls.py下的所有URL單獨添加到site/urls.py因為url(r'^reg/', include('reg.urls'))已經自動為您完成了此操作。

這是在sites/urls.py定義的urlpatterns的正確版本:

from django.conf.urls import patterns

urlpatterns = patterns(
    "",
    (r'^admin/', admin.site.urls),    
    (r'^aps/', include('aps.urls'),
    (r'^mail/', include('mail.urls'),
    (r'^reg/', include('reg.urls'),
)

reg/urls.py

from django.conf.urls import patterns

urlpatterns = patterns(
    "",
    url(r'^login/$', views.login, name='login'),
    url(r'^auth/$', views.auth_view, name='auth_view'),
    url(r'^loggedin/$', views.loggedin, name='loggedin'),
    url(r'^invalid/$', views.invalid_login, name='invalid_login'),
    url(r'^register/$', views.register_user, name='register_user'),
    url(r'^logout/$', views.logout, name='logout'),
    url(r'^register_success/$', views.register_success, name='register_success'),
)

在您的site / urls.py中:

from django.contrib.auth import views as auth_views 
from django.contrib.auth import views

當您的代碼嘗試訪問views.register_success您嘗試訪問django.contrib.auth內部的register_success ,因此出錯。

當代碼嘗試訪問其他視圖時,您將遇到相同的錯誤:它只是在錯誤的位置搜索!

只需更正導入:

from reg import views

編輯:即使不能解釋當前問題的原因,ozgur的回答也提供了更好的實踐,您也應該認真研究並遵循他的建議。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM