0

javascriptのアラート機能を使用して、ログイン/サインアップ時にユーザーにメッセージを表示しようとしています。私はこのようなことを試みていますが、うまくいかないようです。

テンプレートのスクリプトにdjangoの変数を渡す正しい構文は何ですか?

これは私が望むものですが、この構文は機能しません。

{% if messages %}{% for message in messages %}<script>alert({{}});</script>{% endfor %}{% endif %}

ただし、以下が機能しています。

{% if messages %}<ul>{% for message in messages %}
    <li>{{ message }}</li>
{% endfor %}</ul>{% endif %}
4

2 に答える 2

1

Django は、Javascript が提供される前にテンプレート タグを処理します。HTML の場合と同じ方法で Javascript のタグを使用できます。すべてが翻訳されてクライアントに届くため、違いはありません。

たとえば、私が使用しているものは次のとおりです。

<script>
        {% if messages %}
            {% for message in messages %}
                Materialize.toast('{{ message }}', 4000);
            {% endfor %}
        {% endif %}
</script>

あなたの場合、それは次のとおりです。

{% if messages %}
   <script>
    {% for message in messages %}
        alert("{{ message }}");
    {% endfor %}
   </script>
{% endif %}

前後の引用符に注意してください。メッセージがではなく のように{{ message }}表示される場合、Javascript はエラーを返します。また、スクリプトを for ループの外に移動しましたが、あなたの方法で問題が発生するとは思いません。alert(Hello World)alert("Hello World")

複数のメッセージがある場合は注意してください。それぞれのアラートを表示するのは煩わしいかもしれません。

于 2016-09-29T12:46:19.123 に答える