2017-04-03 2 views
0

프로필을 수정하려고하는데이 오류가 있습니다. "DoesNotExist at/blog/edit /, 사용자 일치 검색어가 없습니다." urls.py에서 프로필 사용자 편집 Django

def Profil(request, username): 
    if request.user.is_authenticated(): 
     base_template_name = 'blog/base.html' 
    else: 
     base_template_name = 'blog/visitor.html' 
    user = User.objects.get(username=username) 
    logged_in_user_posts = Post.objects.filter(user=user) 
    context = {'base_template_name':base_template_name} 
    return render(request, 'blog/profil.html', {'user':user, 'posts':logged_in_user_posts}) 



def update_profile(request): 
    if request.method == 'POST': 
     profile_form = ProfileForm(request.POST, request.FILES, instance=request.user.profile) 
     if profile_form.is_valid(): 
      profile_form.save() 
      messages.success(request, ('Your profile was successfully updated!')) 
      return redirect('blog:index') 
     else: 
      messages.error(request, ('Please correct the error below.')) 
    else: 
     profile_form = ProfileForm(instance=request.user.profile) 
    return render(request, 'blog/edit_profile.html', { 
     'profile_form': profile_form }) 

:

url(r'^(?P<username>\w+)/$', views.Profil, name = 'profil'), 
url(r'^edit/$', views.update_profile, name='edit_profile'), 

답변

0

이 오류는 user = User.objects.get(username=username) 라인에서 온다. get() 함수는 하나의 일치를 제공하며 일치하는 것이 없으면 DoesNotExist 오류가 발생합니다. 문제를 해결하려면 다음을 제외하고 시도해 볼 필요가 있습니다. -

try: 
    user = User.objects.get(username=username) 
except User.DoesNotExist: 
    # There is no such user, throw 404 or do anything else 
+0

이해하지만, 사용자 프로필을 편집하여 사용자 exsist를 의미하는 사용자임을 이해하고 있습니다! – Imed

+0

사용자 이름을 인쇄하고 콘솔 (runserver) 출력에서 ​​사용자 이름과 일치하는지 확인하십시오. 또한 사용자 이름을 보여줄'request.user.username'을 출력하십시오. 일치를 확인하기 위해'username == request.user.username'의 출력을 검사 할 수 있습니다. –

+0

사실, 그것은 사용자의 사용자 이름과 일치합니다. 심지어 user.objects.get (username = request.user.username)에 의해 "user = User.objects.get (username = username)"이 변경되었습니다. 프로파일을 편집하십시오 :/ – Imed

관련 문제