繁体   English   中英

单击提交按钮 django 后无法重定向到另一个页面

[英]Not able to redirect to another page after clicking on submit button django

  • 所以,我在下面的代码中实现了一些 post、get 和 update。 将值提交到数据库后。 返回重定向不会将页面更改为UserProfile.htmlurls.py中是user_profile
  • 代码

urls.py

path('user_profile', views.user_profile, name="user_profile"),

views.py

def edit_profile(request):
    try:
        # checking if the user exist in UserProfile through the logged in email id
        user_data = UserProfile.objects.get(emailID = request.user.email)
        # if request.method == "POST" and request.FILES:
        if request.POST.get('action') == 'post':
            name = UserProfile.objects.all()
            response_data = {}
            # user_img = request.FILES['user_img']
            name = request.user.username
            emailID = request.user.email
            phone = request.POST.get('phone')
            college_name = request.POST.get('college_name')
            branch = request.POST.get('branch')

            # response_data['user_img'] = user_img
            response_data['name'] = name
            response_data['emailID'] = emailID
            response_data['phone'] = phone
            response_data['college_name'] = college_name
            response_data['branch'] = branch
            # updating the current logged in user values
            user_data = UserProfile.objects.get(emailID = request.user.email)
            if(user_data.emailID == request.user.email):
                UserProfile.objects.filter(emailID = request.user.email).update(
                    name = name,
                    emailID = emailID,
                    phone = phone,
                    college_name = college_name,
                    branch = branch
                )
            return redirect('/user_profile')
    except UserProfile.DoesNotExist:
        name = UserProfile.objects.all()
        response_data = {}
        # creating new user
        if request.POST.get('action') == 'post':
            # user_img = request.FILES['user_img']
            name = request.user.username
            emailID = request.user.email
            phone = request.POST.get('phone')
            college_name = request.POST.get('college_name')
            branch = request.POST.get('branch')

            # response_data['user_img'] = user_img
            response_data['name'] = name
            response_data['emailID'] = emailID
            response_data['phone'] = phone
            response_data['college_name'] = college_name
            response_data['branch'] = branch
            try:
                # checking if the user exist
                user_data = UserProfile.objects.get(emailID = request.user.email)
            except UserProfile.DoesNotExist:
                # if the user doesn't exist create the user
                UserProfile.objects.create(
                    name = name,
                    emailID = emailID,
                    phone = phone,
                    college_name = college_name,
                    branch = branch
                )
            return redirect('/user_profile')
    else:
        # if the profile is already created fetch the values
        context = {
            'name' : user_data.name,
            'emailID' : user_data.emailID,
            'phone' : user_data.phone,
            'college_name' : user_data.college_name,
            'branch' : user_data.branch
            }
        return render(request, 'edit_profile.html', {'context' : context})
    return redirect('/user_profile')
  • 我也尝试过return HttpResponseRedirect 但这也不适合我。

添加

from django.core.exceptions import ObjectDoesNotExist

改变除了

except ObjectDoesNotExist:

并从重定向中删除“/”

return redirect('user_profile')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM