Django超级用户创建问题

时间:2014-02-07 15:01:20

标签: python django django-views

在我看来,用户可以登录到应用程序,我有以下视图处理程序:

# Login Page
def login(request):
    # First check if the user is already logged in
    if request.user.is_authenticated():
        print "User is authenticated"
        # Yes - redirect to control panel home page
        return HttpResponseRedirect('/control-panel')

因此,如果用户已经登录,我不允许显示登录页面,而是重定向到控制面板页面,就像已登录用户的主页一样。

现在,在我的注册新用户页面的处理程序页面中,我有以下代码:

def register(request):
    # Assume that I have code that handles all form processing etc.
    # Create super user
    user = User.objects.create_superuser(username=username,
                                         email=email, password=password)
    # Redirect to login page
    return HttpResponseRedirect('/login?registration_success=1')

我想要的是,一旦用户注册,我将用户保存在数据库中,然后将用户重定向到登录页面 - 用户需要在注册后登录。

然而,发生的情况是用户似乎已经登录,因此,如登录页面视图处理程序的代码中所示,用户被重定向到控制面板页面。

如何创建超级用户(但不记录用户),然后在注册后强制用户登录?

编辑:如果我将用户注册为非超级用户,则它不会自动登录用户。因此,如果我改为使用User.objects.create_user(...),则用户不会登录。只有超级用户才会自动登录,我不希望这种情况发生。

1 个答案:

答案 0 :(得分:0)

尝试在注册后手动注销他。

from django.contrib.auth import logout

logout(request)