django登录无需请求

时间:2015-07-06 08:08:29

标签: python django login request

我想通过api对用户进行身份验证,这将在kwargs中提供用户名和密码。在我的登录视图中,我想调用此函数。在我看来,我只想渲染模板而不是逻辑。

def login(**kwargs):
    user = authenticate(username=kwargs['username'], password=kwargs['password'])
    login(user)

在django注册教程中我看到了login(request, user)。 我很困惑,我应该在这里使用request,否则它将在没有用户的情况下登录。

谢谢

2 个答案:

答案 0 :(得分:0)

您在自己的函数中调用的Django的login函数接受请求。没有该参数就无法调用它。这当然是有道理的,因为没有可能的原因将用户记录在请求的上下文之外。

答案 1 :(得分:0)

要在中记录用户以设置会话,您需要login参数。请注意,您无法为函数login命名,因为它会与Django的def my_view(request): if request.method == 'POST': # process logic # authenticate user return HttpResponse('some message') # the following code is processed when # request.method is not POST return render(request, 'login-template.html') 函数冲突。

如果您只想分离逻辑和模板,可以这样做:

customDrawingView.post(new Runnable() {
                            @Override
                            public void run() {
                                View view_instance = customDrawingView;
                                android.view.ViewGroup.LayoutParams params = view_instance
                                        .getLayoutParams();
                                int newLayoutWidth = customDrawingView
                                        .getWidth()
                                        + customDrawingView.getWidth();
                                params.width = newLayoutWidth;
                                view_instance.setLayoutParams(params);
                                screenWidthBackup = params.width;
                            }
                        });