Freunde, ich versuche, die Vorlage Variable an Javascript übergeben, um ein Diagramm zu erstellen. Aber ich verstehe es nicht. Django betrachtet alle js-Dateien als statische Dateien. Daher sind dynamische Vorlagenvariablen für Javascripts nicht verfügbar.Wie Vorlage Variablen an Javascript übergeben
ich dies auch versucht:
passing template variables to javascript
Aber es hat auch nicht geholfen. Es konnte nur eine Variable übergeben werden. Der Rest nicht.
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())
Auch, wie in den obigen Link beschrieben, mein profile.html ist
<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 %}
Und ein Teil meiner chart.js, wo ich die Daten übergeben ist:
series: [{
type: 'column',
name: 'User Profile',
data: [
['Questions', questions],
['Answers', answers],
['Documents', docs]
]
}]
Wie zuvor erklärt, wird das Problem nur eine Variable wird übergeben, während der Rest nicht. Daher wird kein Diagramm gerendert. Was soll ich Freunde machen?
Falls es hilft, benutze ich Django 1.9 und highcharts.
Weil Sie 'get' für die Benutzerabfrage verwendet haben, aber' filter' für den Rest. 'filter' gibt ein Anfrage-Set zurück, keine Model-Instanz. –
Ich verstehe es nicht. Ich möchte die Anzahl der Dokumente, Antworten und Fragen eines bestimmten Benutzers zeigen. Sollte ich nicht versuchen, den Benutzer zu finden und zu filtern, um die Fragen, Antworten usw. dieses bestimmten Benutzers zu extrahieren? – amankarn