我在过滤数据并将结果显示在表格中时遇到问题...
在模板中,我有一些输入,它们使用ajax发送输入值,然后在视图中使用<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<form onsubmit="addRow(event)">
<input type="text" name="name">
<input type="text" name="age">
<button>Add row</button>
</form>
<table id="customers_table">
<tr>
<th>name</th>
<th>age</th>
</tr>
</table>
</body>
<script>
function addRow(event){
event.preventDefault();
let name = event.target.name.value
let age = event.target.age.value
var table = document.getElementById("customers_table")
var row = document.createElement("tr");
var nameTd = document.createElement("td");
nameTd.innerText = name;
var ageTd = document.createElement("td");
ageTd.innerText = age;
row.appendChild(nameTd);
row.appendChild(ageTd);
table.appendChild(row);
}
</script>
</html>
来获取值。当某些字段为空时出现问题,我收到错误消息“无法将None用作查询值”
我想做这样的事情,但是我找不到解决方法
例如当request.POST.get()
为空时,request.POST.get
将被忽略
谁能帮我?
谢谢你,对不起我的英语
这是我views.py中的代码
Q
答案 0 :(得分:2)
我们可以创建一个仅针对非None
值创建Q
-object [Django-doc]的函数,例如:
from django.db.models import Q
def q_without_none(**kwargs):
return Q(**{k: v for k, v in kwargs.items() if v is not None})
或者如果您也想排除空字符串:
from django.db.models import Q
def q_without_empty(**kwargs):
return Q(**{k: v for k, v in kwargs.items() if v not in (None, '')})
然后我们可以像这样构造查询:
raport_pacient = Pacient.objects.filter(
q_without_none(
data_creare_pacient__year__gte=de_la,
data_creare_pacient__year__lte=pana_la,
data_iesire__isnull=iesit,
data_deces__isnull=iesit,
adresa_pacient__judet__nume_judet=judet,
adresa_pacient__localitate__nume_localitate=localitate,
categorie=categorie,
stare_civila=stare_civila,
medic=request.user.medic
)
)
注意:尽管不是您真正的问题,但将
JsonResponse
与safe=False
结合使用,正如其名称所示,并不是很安全。已经有exploits with lists for JSON,因此通常最好在顶层定义字典,例如:return JsonResponse({'data': serializer.data})