为什么我在django项目中收到此错误?`

时间:2018-03-24 06:20:26

标签: django

所以我正在进行用户身份验证,登录,注销。我在打开注册门户时收到错误。

AttributeError at /profile/
'User' object has no attribute 'get_profile'

以下是我的views.py

def Registration(request):
    if request.user.is_authenticated:
        return HttpResponseRedirect('/profile/')
    if request.method == 'POST':
        form  = UserRegistrationForm(request.POST)
        if form.is_valid():
            user = User.objects.create_user(username = form.cleaned_data['username'],email = form.cleaned_data['email'] , password = form.cleaned_data['password'])
            user.save()
            UserProfile= UserProfile(user=user, birth_date=form.cleaned_data['birth_date',])
            UserProfile.save()
            return HttpResponseRedirect('/profile/')
        else:
            return render('visit/registration/register.html', {'form': form},)

    else:
        form= LoginForm()
        context = {'form': form}
        return render(request, 'visit/registration/register.html', context )


@login_required
def Profile(request):
    if not request.user.is_authenticated:
        return HttpResponseRedirect('/login/')
    UserProfile = request.user.get_profile()
    context ={'UserProfile': UserProfile}
    return render(request,'visit/profile.html', context)

def LoginRequest(request):
    if request.user.is_authenticated:
        return HttpResponseRedirect('/profile')
    if request.method == 'POST':
        form  = LoginRequest(request.POST)
        if form.is_valid():
            username = form.cleaned_data['username']
            password = form.cleaned_data['password']
            UserProfile = authenticate(username=username, password=password)
            if UserProfile is not None:
                login(request, UserProfile)
                return HttpResponseRedirect('/profile/')
            else:
                return render(request,'visit/registration/login.html',{'form':form})
        else:
            return render(request, 'visit/registration/login.html', {'form': form})

    else:
        form= LoginForm()
        context = {'form': form}
        return render(request, 'visit/registration/login.html', context, )


def logoutRequest(request):
    logout(request)
    return  render(request, 'visit/login.html')


def index(request):
    return render(request, 'visit/index.html', context=None)

我不确定错误是什么/哪里。我正在使用Django 2.0.2。 我知道有类似的问题,但我没有得到适当的解决方案。 帮助将被批评。以下是我的settings.py

#provides our get_profile
AUTH_PROFILE_MODULE = 'visit.model.UserProfile'
# URL for @login required
LOGIN_URL = '/login/'

#redirect authenticated user
LOGIN_REDIRECT_URL = '/profile/'

1 个答案:

答案 0 :(得分:0)

根据@neverwalker评论,此方法已弃用1.7。请参考以下代码

user_profile = UserProfile.objects.get(activation_key='some_key')
user = user_profile.user
相关问题