如何在js中检查Django对象是否为None?
我目前有一个存储Django对象或None的变量person
。在我的js中我有:
if ({{person}} != None) {
execute_function({{person}})
}
这里似乎有什么问题?
答案 0 :(得分:4)
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' :
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 }})
}
答案 1 :(得分:0)
这对我有用:
{% if person != None %}
var p = ...
...
{% endif %}