Как разрешить ошибку MultiValueDictKeyError в django
Цель программы - предоставить пользователю доступ к редактированию определенных деталей в своей базе данных.
Это файл 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.файл
<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'] ".
Я застрял здесь. Как мне поступить