“我正在尝试使用 POST 方法检索详细信息,但遇到方法名称错误。我已在下面附加了我的代码,所以请帮我解决它。” 并且也无法在数据库中获取任何信息
Internal Server Error: /register/
Traceback (most recent call last):
File "J:\good\test\Lib\site-packages\django\utils\datastructures.py", line 84, in __getitem__
list_ = super().__getitem__(key)
^^^^^^^^^^^^^^^^^^^^^^^^
KeyError: 'name'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "J:\good\test\Lib\site-packages\django\core\handlers\exception.py", line 55, in inner
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^
File "J:\good\test\Lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "J:\good\mainone\threeapp\views.py", line 22, in register
name=request.POST['name']
~~~~~~~~~~~~^^^^^^^^
File "J:\good\test\Lib\site-packages\django\utils\datastructures.py", line 86, in __getitem__
raise MultiValueDictKeyError(key)
django.utils.datastructures.MultiValueDictKeyError: 'name'
模型.py name model也发现错误
from django.db import models
# Create your models here.
class user(models.Model):
name = models.CharField(max_length=30)
Email= models.EmailField(max_length=254)
phone= models.IntegerField()
account = models.CharField(max_length=10)
message = models.CharField(max_length=300)
同时注册函数中出现MultiValueDictKeyError。
views.py
from django.shortcuts import render,redirect
from django.contrib.auth.models import User
# Create your views here.
def index(request):
return render(request,"index.html")
def contact(request):
return render(request,"contact.html")
def ideagained(request):
return render(request,"idea_gained.html")
def idea(request):
return render(request,"idea.html")
def ouridea(request):
return render(request,"our_idea.html")
def aboutpage(request):
return render(request,"aboutpage.html")
def register(request):
name=request.POST['name']
email=request.POST['email']
phone=request.POST['phone_number']
account=request.POST['account']
message=request.POST['message']
user=user.objects.create_useryou(name=name, email=email, phone_number=phone, account=account, message=message)
print("we wil call back you")
return redirect('/')
html 文件
<form action="{% url "register" %}" method="post">
{% csrf_token %}
<h3>my information</h3>
<h4>Contact us today, and get reply with in 24 hours!</h4>
<style>
fieldset {
border: medium none !important;
text-emphasis-color:black;
margin: 0 0 10px;
min-width: 100%;
padding: 0;
width: 100%;F
}
</style>
<fieldset>
<input placeholder="Your_name" type="text" tabindex="1" style="background-color:black;" required autofocus>
</fieldset><br>
<fieldset>
<input placeholder="Your Email Address" type="email" tabindex="2" style="background-color:black;" required>
</fieldset><br>
<fieldset>
<input placeholder="Your Phone Number" type="tel" tabindex="3" style="background-color:black;" required>
</fieldset><br>
<fieldset>
<label for="cars">Choose a account:</label>
<select name="account" id="name">
<option value="netflix">netflix</option>
<option value="amazone prime">amazone</option>
<option value="disney plus hotstar">hotstar</option>
</select>
<style>
#nname {
padding: 5px;
color: #f7f7f8;
font-size: 12px;
background: black;
appearance: none;
}
</style>
</fieldset><br>
<fieldset>
<textarea placeholder="Type your Message Here...." tabindex="5" style="background-color:black;" required></textarea>
</fieldset><br>
<fieldset>
<button name="submit" type="submit" id="contact-submit" style="background-color:rgb(23, 12, 12);" data-submit="...Sending" value="submit">Submit</button>
</fieldset><br>
</form>
您需要为 html 输入标签提供一个
name
属性。您将使用它的值在视图中访问它。
<input placeholder="Your_name" name="name"... >
<input placeholder="Your Email Address" name="email"... >
<input placeholder="Your Phone Number" name="phone_number"... >
<textarea placeholder="Type your Message Here...." name="message"... ></textarea>