2017-02-25 12 views
0

私の悪い英語のために申し訳ありません。 は私がスクリプトはDjangoのテンプレートにファイルをレンダリングするヘッドレンダリングされたスクリプトがボディテンプレート内に表示されるdjango

{% ishout.js %} 

を使用するが、彼らは、文字列

"<script type="text/javascript" src="http://localhost:5500/socket.io/socket.io.js"></script> 
<script type="text/javascript" src="http://localhost:5500/client/ishout.client.js"></script>" 

としてヘッドない内部本体内に表示されます。 それ以降のスクリプトも本文に表示されます。

私は検索してエンコードしてみましたが、修正方法が見つかりません。

UPDATE これはこれはhome.htmlファイルにあるviews.pyファイル

@login_required 
def home(request): 
    users = User.objects.exclude(id=request.user.id) 
    v = RequestContext(request, {'users':users}) 
    # return render(request, 'home.html', {'users':users}) 
    return render_to_response('home.html', v) 

ある

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>Home</title> 
    {% load drealtimetags %} 
    {% ishout_js %} 
</head> 
<body> 
    <h1>Dashboard</h1> 
    {% for user in users %} 
     {{ user.first_name }}<a href="/alert/?user={{ user.id }}">Alert (Hello)</a> 
    {% empty %} 
     <b>No user found</b> 
    {% endfor %} 
</body> 
</html> 

UPDATE 2: これは、ページのソースである

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8" /> 
    <title>Home</title> 


    &lt;script type=&quot;text/javascript&quot; src=&quot;http://localhost:5500/socket.io/socket.io.js&quot;&gt;&lt;/script&gt; 
    &lt;script type=&quot;text/javascript&quot; src=&quot;http://localhost:5500/client/ishout.client.js&quot;&gt;&lt;/script&gt; 

    <script> 
     ishout.on('alertchannel', function(data){ 
      alert(data.msg); 
     }); 

     ishout.init(); 
    </script> 
</head> 
<body> 
    <h1>Dashboard</h1> 

     phuc<a href="/alert/?user=2">Alert (Hello)</a> 

     <a href="/alert/?user=3">Alert (Hello)</a> 

</body> 
</html> 

そして、あなたはそれらのjsファイルのそれぞれを含めている、とあなたはそれをレンダリングし、HTMLスクリプトタグとして解釈したいので、私は

<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>Home</title> 


</head> 
<body> 
&lt;script type="text/javascript" src="http://localhost:5500/socket.io/socket.io.js"&gt;&lt;/script&gt; 
&lt;script type="text/javascript" src="http://localhost:5500/client/ishout.client.js"&gt;&lt;/script&gt; 

    <script> 
     ishout.on('alertchannel', function(data){ 
      alert(data.msg); 
     }); 

     ishout.init(); 
    </script> 


    <h1>Dashboard</h1> 

     phuc<a href="/alert/?user=2">Alert (Hello)</a> 

     <a href="/alert/?user=3">Alert (Hello)</a> 


</body> 

Snapshot

+0

をあなたはそれをレンダリングあなたの完全なテンプレートとビューを表示することができますか? – Ben

+0

私は何か間違って見ることはできません - レンダリングされたHTMLを投稿できますか? – Ben

+0

が更新されました。 –

答えて

0

ようになります。

は、タグの周りautoescapeをオフにし

{% autoescape off %} 
    {% ishout_js %} 
{% endautoescape %} 
+0

それは仕事です!ありがとう –

0

を検査する場合、そのテンプレートファイル作ってみます代わりに_ishout_includes.htmlです。ファイルの内容をまったく変更する必要はありません。

ここから{%include%}タグを使用してください。これは、タグがエスケープなっているHTMLを返しているので、ブラウザは、本体内部のテキストとして代わりの<head>における実際のHTMLとしてレンダリングされるためです

{% include _ishout_includes.html%}

+0

が動作していないことを確認してください。とにかく??? –

関連する問題