当尝试在 Django 视图中包含内置的登录/注销系统时,视图不存在



代码是

#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 默认登录和注销模块。如果成功登录,那么我想重定向到主页。提前谢谢。

基于函数的通用视图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='/')),
)

请注意,您不必包含 /accounts//accounts/profile/ 的 url 模式。您最好在设置中设置LOGIN_REDIRECT_VIEW,以便用户在登录后直接重定向到主页。

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

最新更新