我注意到当布尔数据从 javascript 发送到 Django 视图时,它作为“true”/“false”(小写)而不是“True”/“False”(大写)传递。这会导致我的应用程序出现意外行为。例如:
投票.js
....
var xhr = {
'isUpvote': isUpvote
};
$.post(location.href, xhr, function(data) {
doSomething()
});
return false;
});
视图.py
def post(self, request, *args, **kwargs):
isUpvote = request.POST.get('isUpvote')
vote, created = Vote.objects.get_or_create(user_voted=user_voted)
vote.isUp = isUpvote
vote.save()
当我保存此投票并检查我的 Django 管理页面时,“isUpvote”总是设置为 True,无论是从 javascript 传递的是 true 还是 false。那么将 javascript 的“真/假”布尔值转换为 Django 的“真/假”值的最佳方法是什么?
谢谢!!
添加:::::
好吧,我添加了一些“打印”行来检查我是否做错了什么:
print(vote.isUp)
vote.isUp = isUpvote
print(vote.isUp)
vote.save()
结果:
True
false //lowercase
然后当我检查我的 Django 管理员时,它被保存为“真”!!!所以我想这意味着由于某些奇怪的原因,小写字母“false”被保存为 Django“True”值......