python
  • django
  • 2017-04-03 11 views 0 likes 
    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()関数は1つの一致のみを返し、一致するものがなければDoesNotExistというエラーをスローします。私は、ユーザーがexsist意味ユーザーだように、私は私のプロフィールtryingto編集していた場合、

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

    理解、しかし!!:除く - あなたが試みを使用する必要があります問題を解決するために、 – Imed

    +0

    ユーザー名を表示し、コンソール(runserver)出力のユーザーのユーザー名と一致するかどうかを確認します。また、あなたのユーザ名を表示する 'request.user.username'も表示してください。一致を確認するために、 'username == request.user.username'の出力を確認することができます。 –

    +0

    実際、それはユーザーのユーザー名と一致しますが、user = object.objects.get(username = request.user.username)によって「user = User.objects.get(username = username)」を変更したとしても/ – Imed

    関連する問題