2017-02-25 25 views
0

對不起,我的英語不好。 我用身體模板內呈現的腳本顯示django

{% ishout.js %} 

渲染腳本在Django模板文件,但它們顯示爲字符串

"<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 這是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) 

這是Home.html文件中

<!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> 

更新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> 

當我檢查

<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

這是因爲標籤返回,這是獲得轉義的HTML,所以瀏覽器渲染它身體內部文本而不是真正的HTML在<head>

關閉autoescape周圍的標籤:

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

它的工作!謝謝 –

0

既然你是包括每個那些js文件的,你想讓它變得並將其解釋爲HTML腳本代碼,嘗試使它成爲一個模板文件改爲_ishout_includes.html。你根本不需要改變文件的內容。

從那裏,使用{%include%}標記。它看起來像

{% include _ishout_includes.html%}

+0

無法正常工作。無論如何??? –