2013-10-31 65 views
0

的代碼是視圖不存在

#urls.py 

from django.conf.urls import patterns, url 
from employees import views 
from schdeules import views 
urlpatterns = patterns('', 
url(r'^$', views.home, name='home'), 
url(r'^accounts/logout/$', 'django.contrib.auth.views.logout'), 
url(r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'admin/login.html'}), 
url(r'^accounts/$', 'django.views.generic.simple.redirect_to', {'url': '/'}), 
url(r'^accounts/profile/$', 'django.views.generic.simple.redirect_to', {'url': '/'}), 
) 

#views.py 
# Create your views here. 
from django.contrib.auth.decorators import login_required 
from django.shortcuts import render 
@login_required 
def home(request): 
    welecome = 'hai welcome to opas' 
    context = {'temp_var': welecome} 
    return render(request, 'schdeules/home.html') 

and iam getting an error 

Exception Type: ViewDoesNotExist at /opas/ 
Exception Value: Could not import django.views.generic.simple.redirect_to. Parent module django.views.generic.simple does not exist. 

我想使用Django默認的登錄和註銷模塊。 如果成功登錄,那麼我想重定向到主頁。 在此先感謝。

回答

0

基於功能的通用視圖redirect_to已在Django 1.3中棄用,並在Django 1.5中刪除。改爲使用基於類的通用視圖RedirectView

from django.views.generic.base import RedirectView 

urlpaterns = ('', 
... 
    url(r'^accounts/$', RedirectView.as_view(url='/')), 
    url(r'^accounts/profile/$', RedirectView.as_view(url='/')), 
) 

注意,您不必包含URL模式爲/accounts//accounts/profile/。你可能會更好地設置您的設置LOGIN_REDIRECT_VIEW,使用戶在登錄後直接重定向到主頁。

LOGIN_REDIRECT_VIEW = 'home' # using a named url pattern requires Django 1.5 or later 
+0

中的urls.py我要補充的THz code.either在app urls.py或項目urls.py – ram

+0

我在應用程序urls.py中添加了thz代碼,但它沒有登錄認證而顯示主頁 – ram

+0

您應該能夠在任何'urls.py'中包含這些url模式,但如果它不工作,它可能最容易把它們放到你的項目的'urls.py'中。如果主頁正在顯示,那麼用戶已經登錄,或者顯示主頁的視圖不使用'login_required'裝飾器。 'LOGIN_REDIRECT_VIEW'是一個設置,因此屬於'settings.py'。 – Alasdair