jsでDjangoオブジェクトがNoneであるかどうかを確認しますか?DjangoオブジェクトがjavascriptでNoneであるかどうかをチェックする方法?
私は現在、DjangoオブジェクトまたはNoneを格納する変数person
を持っています。私のjsで私は持っています:
if ({{person}} != None) {
execute_function({{person}})
}
ここで問題と思われるものはありますか?
jsでDjangoオブジェクトがNoneであるかどうかを確認しますか?DjangoオブジェクトがjavascriptでNoneであるかどうかをチェックする方法?
私は現在、DjangoオブジェクトまたはNoneを格納する変数person
を持っています。私のjsで私は持っています:
if ({{person}} != None) {
execute_function({{person}})
}
ここで問題と思われるものはありますか?
ジョン・スミスの答えが最も理にかなって、Djangoのテンプレートでそれを確認してください。実際にはより良い は次のようになります。
{% if person %}
execute function
{% endif%}
JavaScriptを使用して、それを確認する必要がある場合は、JavaScriptがそうJavaScriptコードはDjangoのHTMLテンプレートでもあることを想定し、代わりなしのヌル使用(および外部ファイルとしてロードされていません)これはうまくいくはずです。
if ({{person}} != null) {
execute_function({{person}})
}
編集:
もう少し詳しく追加: おそらくのようなものに解析されます:
if (john != null){
execute_function(john)
}
JavaSciptはジョンを理解することはありませんが、それは引用されたバージョンを理解します「ジョン」:
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 }})
}
まさに私が探していて、何か新しいことを学んだ:) –
実際には、おそらく{{person}}の出力を条件付きで引用する必要があります。そうしないと、JavaScriptは宣言されていない変数として扱います。個人的に私はperson(Django)のモデルメソッドを定義し、{{person}}がテンプレートに出力するものの引用バージョンを返すようにします。 {{person.quoted_name}}かそれに類するものです。 –
引用したバージョンの意味を明確にしたり、例を挙げてください。 –
これが私の仕事:
{% if person != None %}
var p = ...
...
{% endif %}
の可能性のある重複した[Djangoのテンプレートで "なし" に相当しますか?](のhttp://のstackoverflow。 com/questions/11945321/what-is-the-none-in-none-in-django-templates) – Harrison
'if({{person}}!=" None ")'を試してください。 JavaScriptの代わりにDjango '{%if%}'を使うこともできます。 – elethan
あなたはクライアントサイドのjavadriptでdjangoオブジェクトにアクセスすることはできません – e4c5