在js中如何判断一个Django对象是否为None?
我目前有一个变量 person
存储 Django 对象或 None。在我的 js 中我有:
if ({{person}} != None) {
execute_function({{person}})
}
这似乎是什么问题?
最佳答案
John Smiths 的回答最有道理,请在 Django 的模板中查看。 实际上更好的是:
{% if person %}
execute function
{% endif%}
如果您需要使用 JavaScript 检查它,JavaScript 使用 null 而不是 None,因此假设 JavaScript 代码也在 Django html 模板中(并且没有作为外部文件加载)这应该可以工作。
if ({{person}} != null) {
execute_function({{person}})
}
编辑:
添加更多细节: 这可能会被解析为如下内容:
if (john != null){
execute_function(john)
}
JavaScipt 不会理解 john ,但它会理解引用的版本 'john' :
if ('john') != null){
execute_function('john')
}
实现此目的的最简单方法是向 Person 模型添加模型方法。
Class Person(models.Model):
...field definitions here.
def quoted_name(self):
return "'%s'" % self.name
然后在模板中(空字符串的计算结果为 false):
if ({{person.quoted_name }}) {
execute_function({{person.quoted_name }})
}
关于javascript - 如何检查 Django 对象是否在 javascript 中为 None?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39091167/