友達、私はチャートを作成するためにjavascriptにテンプレート変数を渡そうとしています。しかし、私はそれを取得していません。 Djangoはすべてのjsファイルを静的ファイルとみなします。動的テンプレート変数はjavascriptでは使用できません。テンプレート変数をjavascriptに渡す方法
私もこれを試してみました:
passing template variables to javascript
しかし、それはどちらか助けていません。変数は1つだけ渡すことができます。残りはしませんでした。
def profile(request,username):
try:
u = User.objects.get(username=username)
questions = Question.objects.filter(user=u)
answers = Answer.objects.filter(user=u)
docs = Document.objects.filter(user=u)
except User.DoesNotExist:
pass
return render(request,"auths/profile.html",locals())
また、上記のリンクで説明したように、私のprofile.htmlは
<input type="hidden" value="{{ u.username }}" id="username" />
<input type="hidden" value="{{ docs.count }}" id="docs" />
<input type="hidden" value="{{ questions.count }}" id="questions" />
<input type="hidden" value="{{ answers.count }}" id="answers" />
{% block extra %}
<script type="text/javascript">
var user = document.getElementById("username").value;
var docs = document.getElementById("docs").value;
var questions = document.getElementById("questions").value;
var answers = document.getElementById("answers").value;
</script>
<script type="text/javascript" src="{% static 'highcharts.js'%}"> </script>
<script type="text/javascript" src="{% static 'highcharts-3d.js'%}"></script>
<script type="text/javascript" src="{% static 'chart.js' %}"></script>
{% endblock %}
と私はデータを渡す私のchart.jsのセクションでは、次のとおりです。
series: [{
type: 'column',
name: 'User Profile',
data: [
['Questions', questions],
['Answers', answers],
['Documents', docs]
]
}]
先に説明したように、問題は1つの変数だけが渡され、残りの変数は渡されません。その結果、チャートはレンダリングされません。私は友達と何をすべきですか?
私が助けてくれたら、私はDjango 1.9とハイチャートを使用しています。
あなたはUserクエリーに 'get'を使っていますが、残りは' filter'を使っているからです。 'filter'はモデルインスタンスではなくクエリーセットを返します。 –
私はそれを取得しません。私は、特定のユーザーの文書、回答、および質問の数を表示したいと思っています。私はgetを使用して、特定のユーザーの質問、回答などを抽出するユーザーとフィルターを見つけるべきではありませんか? – amankarn