ValueError:不能使用 None 作为查询值 django ajax
Posted
技术标签:
【中文标题】ValueError:不能使用 None 作为查询值 django ajax【英文标题】:ValueError: Cannot use None as a query value django ajax 【发布时间】:2021-08-16 06:42:19 【问题描述】:我想通过 Ajax 调用显示带有数据响应的下拉列表。一切正常,但我收到此ValueError: Cannot use None as a query value
错误。
查看:
def load_brand(request):
if request.is_ajax():
term = request.GET.get('term')
brand = Brand.objects.all().filter(brand__icontains=term)
return JsonResponse(list(brand.values()), safe=False)
ajax:
$('#id_brand').select2(
ajax:
url: '/brand/ajax/load-brand/',
dataType: 'json',
processResults: function (data)
return
results: $.map(data, function (item)
return id: item.id, text: item.brand;
)
;
,
minimumInputLength: 1
);
【问题讨论】:
【参考方案1】:在您的 ajax 调用中,您没有发送 data
即:哪个用户在 select2 中输入并且您正在访问它们,即:request.GET.get('term')
这是空的,所以您的 .filter(brand__icontains=term)
给您错误,因为 term
值为 null .
相反,您也可以在 ajax 调用中添加以下内容:
$('#id_brand').select2(
ajax:
url: '/brand/ajax/load-brand/',
dataType: 'json',
data: function(params)
var query =
term: params.term, //this will be paass
type: 'public' //optional..
// Query parameters will be ?term=[values]&type=public
return query;
,
processResults: function(data)
return
results: $.map(data, function(item)
return
id: item.id,
text: item.brand
;
)
;
,
minimumInputLength: 1
);
另外,在您的服务器端,您可以检查term
是否有任何值,即:
if term:
brand = Brand.objects.all().filter(brand__icontains=term)
更多信息请查看this
【讨论】:
以上是关于ValueError:不能使用 None 作为查询值 django ajax的主要内容,如果未能解决你的问题,请参考以下文章
已修复Error: ValueError: The last dimension of the inputs to `Dense` should be defined. Found `None`
已修复Error: ValueError: The last dimension of the inputs to `Dense` should be defined. Found `None`
Colab 中的 TensorFlow 错误 - ValueError: Shapes (None, 1) 和 (None, 10) 不兼容
ValueError:形状 (None, 1) 和 (None, 2) 不兼容
ValueError:logits 和标签必须具有相同的形状 ((None, 4) vs (None, 1))
ValueError:logits 和标签必须具有相同的形状 ((None, 23, 23, 1) vs (None, 1))