我尝试使用此代码将我的 JSON 数据保存到我的模型 Mvouchar。但是得到这个错误。我很容易通过 cmd 获取数据,但我试图将其保存在我的模型中然后我得到错误,为什么会发生这种情况,我认为我犯了一些小错误但无法捕捉如果你遇到我的问题请帮助
#views.py
@csrf_exempt
def jsdata(request):
table_data = json.loads(request.POST.get('MyData'))
print(table_data)
for data in table_data:
b_no = request.POST['billno']
b_details = request.POST['billdetails']
at = request.POST['amount2']
record = Mvouchar(bill_no = data.b_no, bill_details = data.b_details,am=data.at)
record.save()
return render(request, 'cheque/mvouchar.html', {'msg': 'Data Saved.'})
#models.py
class Mvouchar(models.Model):
related = models.ForeignKey(Signs, on_delete=models.CASCADE, null=True, blank=True)
bill_no = models.CharField(max_length=80, null=True, blank=True)
bill_details = models.CharField(max_length=1000, null=True, blank=True)
am = models.CharField(max_length=30, null=True, blank=True)
vouchar_no = models.CharField(max_length=1000, null=True, blank=True)
#urls.py
url(r'jsondata/$', views.jsdata, name='jsondata'),
#script
<script>
$("#btnjson").click(function () {
var array1 = [];
$("tbody tr").each(function () {
var firstTableData = {};
firstTableData.BillNo = $(this).find('td').eq(0).text();
firstTableData.BillDetails = $(this).find('td').eq(1).text();
firstTableData.Amount = $(this).find('td').eq(2).text();
array1.push(firstTableData);
//}
});
alert(JSON.stringify(array1));
$.ajax({
type: "POST",
url: "/jsondata/",
dataType: 'json',
data: {MyData: JSON.stringify(array1)},
success: function(msg){
alert(msg);
}
});
return false;
} );
});
</script>
请您参考如下方法:
from django.http import JsonResponse
def jsdata(request):
table_data = json.loads(request.POST.get('MyData'))
# print(table_data)
r_data = {
'success': True,
}
for data in table_data:
# Since you are just creating objects you don't need to save created object in a variable.
try:
Mvouchar.objects.create(bill_no = data['BillNo'], bill_details=data['BillDetails'],at=data['Amount'])
except:
r_data['success'] = False
# IMO Views responding to ajax requests should send JsonResponse
if r_data['success']:
r_data['msg'] = 'Data Saved'
else:
r_data['msg'] = 'Not all Data Saved'
return JsonResponse(r_data)
