返回

python—如何在 django 中解决 MultiValueDictKeyError

发布时间:2022-09-06 07:50:59 286
# node.js

该程序的目的是让用户有权编辑其数据库中的某些详细信息。

这是views.py 文件

    def edit_profile(request):

        user_info = UserInfo.objects.all()

        if request.method == 'POST':

            username_edit = request.POST['edit_username']

            firstname_edit = request.POST['edit_firstname']

            lastname_edit = request.POST['edit_lastname']

            email_edit = request.POST['edit_email']

            phone_number_edit = request.POST['edit_phone']

            if len(phone_number_edit) == 11:

                if int(phone_number_edit) / 1 == 0:

                    if User.objects.filter(username=username_edit).exists():

                        messages.info(request, 'Username already exists!')

                        return redirect('edit')

                    elif User.objects.filter(email=email_edit).exists():

                        messages.info(request, 'Email has already been used')

                        return redirect('edit')

                    else:

                        new_user_info = User.objects.all()

                        new_user_info.username = username_edit

                        new_user_info.first_name = firstname_edit

                        new_user_info.last_name = lastname_edit

                        new_user_info.email = email_edit

                        new_user_info.save()

                        new_user_info_phone = user_info

                        new_user_info_phone.phone_number = phone_number_edit

                        new_user_info_phone.save()

                        return redirect('profile')

                else:

                    messages.info(request, 'Phone number not valid')

                    return redirect('edit')

            else:

                messages.info(request, 'Phone number not valid')

                return redirect('edit')

        else:

            return render(request, 'profile_edit.html', {'user_info': user_info})

这是 html.file

      <form action="", method="post">

        {% csrf_token %}

        {% for message in messages %}

          <p style="color: red;">{{message}}</p>

        {% endfor %}

        <h3>Click done after editing</h3>

        <p>Username: <input type="text", name="edit_username", value=" 

    {{user.username}}"></p>

        <p>First Name: <input type="text", name="edit_firstname", value=" 

    {{user.first_name}}"></p>

        <p>Last Name: <input type="text", name="edit_lastname", value=" 

   {{user.last_name}}"></p>

        <p>Email: <input type="email", name="edit_email", value="{{user.email}}"></p>

        {% for user in user_info %}

          <p>Phone Number: <input type="text", value="{{user.phone_number}}", 

    name="edit_phone"></p>

        {% endfor %}

        <input type="submit", value="Done">

      </form>

这是 urls.py 文件

    from django.urls import path

    from . import views

    urlpatterns = [

        path('', views.index, name='index'),

        path('edit', views.edit_profile, name='edit'),

      ]

每当我使用“python manage.py runserver”运行服务器时,我总是会收到此错误“MultiValueDictKeyError at /edit 'edit_username'”

它还说“在处理上述异常('edit_username')期间,发生了另一个异常:

username_edit = request.POST['edit_username'] "。

我一直被困在这里。我该怎么做

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像