在djang中获取经过身份验证的用户名到函数视图

2024-06-01 22:04:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图修改当前用户的数据,但没有成功,需要一些帮助。你知道吗

def account_admin(request):
    if request.method == 'POST':
        mod_form = ModificationForm(request.POST)
        if mod_form.is_valid():
            user = User.objects.get(request.user)
            user.set_password(form.cleaned_data['password1'])
            user.email = form.cleaned_data['email']
            user.save
            return HttpResponseRedirect('/register/success/')
    else:
        mod_form = ModificationForm()

    variables = RequestContext(request, {
        'mod_form': mod_form
    })
    return render_to_response('registration/account.html', variables)

Tags: 数据用户formmoddatareturnifemail
3条回答

request.user已经是User的一个实例,没有必要再进行一次查询。你知道吗

另外,您实际上需要调用save()。你知道吗

你似乎有你的答案从上述职位,但我注意到,你没有验证用户(你可能已经做了其他地方,我不知道)。如果您想这样做,请尝试登录\u required decoratorhttps://docs.djangoproject.com/en/1.5/topics/auth/default/#django.contrib.auth.decorators.login_required

您的问题是:

user = User.objects.get(request.user)

理想的情况是

user = User.objects.get(id=request.user.id)

在这里检索用户对象不需要查询,因为request.user的计算结果是登录用户对象的实例。你知道吗

user = request.user
user.set_password(form.cleaned_data['password1'])
user.email = form.cleaned_data['email']
user.save()

应该有用

另外,请确保您有^{}装饰器到account_admin方法

相关问题 更多 >