姜戈 ajax django.utils.datastructures.MultiValueDictKeyError
django ajax django.utils.datastructures.MultiValueDictKeyError
我找到了一个 ajax 用于 crud 操作的示例。
我在我的模式中添加了 'city' 字段,但出现错误
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('/')
models.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
index.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
我找到了一个 ajax 用于 crud 操作的示例。
我在我的模式中添加了 'city' 字段,但出现错误
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('/')
models.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
index.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