代码之家  ›  专栏  ›  技术社区  ›  Destiny Franks

django——我想在用户编辑他们的个人资料后重定向到个人资料页面

  •  0
  • Destiny Franks  · 技术社区  · 3 年前

    当用户完成更新他们的个人资料时,我想将他们重定向回个人资料页面,但它一直显示 Reverse for 'profile' with no arguments not found. 1 pattern(s) tried: ['(?P<username>[^/]+)/$'] 我曾试图改变我的观点,但现在它改变了。

    意见。py

    def profile_update(request):
        Profile.objects.get_or_create(user=request.user)
        if request.method == "POST":
            u_form = UserUpdateForm(request.POST, instance=request.user)
            p_form = ProfileUpdateForm(request.POST, request.FILES, instance=request.user.profile)
            if u_form.is_valid() and p_form.is_valid():
                u_form.save()
                p_form.save()
                messages.success(request, f'Acount Updated Successfully!')
                return redirect('profile')
        else:
            u_form = UserUpdateForm(request.POST, instance=request.user)
            p_form = ProfileUpdateForm(request.POST, request.FILES, instance=request.user.profile)
        
        context = {
            'u_form': u_form,
            'p_form': p_form,
            
        }
    
        return render(request, 'userauths/profile_update.html', context)
    

    网址。py主要项目主管

    from userauths.views import UserProfile
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('users/', include('userauths.urls')),
        path('<username>/', UserProfile, name='profile'),
    ]
    
    1 回复  |  直到 3 年前
        1
  •  0
  •   Guiana Annimali    3 年前

    来自django。contrib。啊。decorators需要导入登录名

    尝试:

    @login_required
    def profile_update(request):
        profile = get_object_or_404(Profile, user=request.user)
    
    
    return redirect('profile', profile.user.username)