如何在javascript中检查Django对象是否为None?

时间:2016-08-23 01:54:24

标签: javascript python django

如何在js中检查Django对象是否为None?

我目前有一个存储Django对象或None的变量person。在我的js中我有:

if ({{person}} != None) {
    execute_function({{person}})
}

这里似乎有什么问题?

2 个答案:

答案 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 %}