![](/img/trans.png)
[英]django.utils.datastructures.MultiValueDictKeyError with form post data
[英]django ajax django.utils.datastructures.MultiValueDictKeyError
我找到了一个用于 crud 操作的 ajax 示例。
我在模态中添加了“城市”字段,但出现错误
Traceback (most recent call last):
File "C:\Users\Atilgan\AppData\Local\Continuum\anaconda3\lib\site-packages\django\utils\datastructures.py", line 76, in __getitem__
list_ = super().__getitem__(key)
KeyError: 'city'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Atilgan\AppData\Local\Continuum\anaconda3\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
response = get_response(request)
File "C:\Users\Atilgan\AppData\Local\Continuum\anaconda3\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Users\Atilgan\AppData\Local\Continuum\anaconda3\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Atilgan\Desktop\Depo\jquery\crud\views.py", line 10, in create
member = Member(firstname=request.POST['firstname'], lastname=request.POST['lastname'], city=request.POST['city'])
File "C:\Users\Atilgan\AppData\Local\Continuum\anaconda3\lib\site-packages\django\utils\datastructures.py", line 78, in __getitem__
raise MultiValueDictKeyError(key)
django.utils.datastructures.MultiValueDictKeyError: 'city'
这是代码:
创建脚本
$('#create').on('click', function(){
$firstname = $('#firstname').val();
$lastname = $('#lastname').val();
$city = $('#city').val();// i added here
if($firstname == "" || $lastname == ""){
alert("Please complete the required field");
}else{
$.ajax({
url: 'create',
type: 'POST',
data: {
firstname: $firstname,
lastname: $lastname,
lastname: $city, // I added here
csrfmiddlewaretoken: $('input[name=csrfmiddlewaretoken]').val()
},
success: function(){
Read();
$('#firstname').val('');
$('#lastname').val('');
$('#city').val(''); // I added here
}
});
}
});
视图创建
def create(request):
member = Member(firstname=request.POST['firstname'], lastname=request.POST['lastname'], city=request.POST['city']) // I added here city=request.POST['city']
member.save()
return redirect('/')
模型.py
class Member(models.Model):
firstname = models.CharField(max_length=40)
lastname = models.CharField(max_length=40)
city= models.CharField(max_length=40) // I added here
def __str__(self):
return self.firstname + " " + self.lastname + " " + self.city // I added here
索引.html
{% extends 'crud/base.html' %}
{% block body %}
<form class="form-inline">
{% csrf_token %}
<div class="form-group">
<label>Firstname</label>
<input type="text" id="firstname" class="form-control" style="width:20%;" required="required"/>
<label>Lastname</label>
<input type="text" id="lastname" class="form-control" style="width:20%;" required="required"/>
<label>City</label> // I added here
<input type="text" id="city" class="form-control" style="width:20%;" required="required"/>
<button type="button" id="create" class="btn btn-sm btn-primary">Create</button>
</div>
</form>
<br />
<div id="result">
</div>
{% endblock %}
很抱歉,但我的英语不好
你还没有将城市放入数据中
lastname: $city,// i added here
应该
city: $city,// i added here
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.