2017-05-14 2 views
1

Jetzt verwende ich Django, um eine Website zu erstellen. Um JSON in HTML zu verwenden, habe ich es geschafft, JSON auf Vorlage zu antworten. Aber wenn ich JSON-Daten in HTML verwende, werden die Daten nicht angezeigt.Django-Vorlagen mit JSON

Hier ist mein Code:

views.py

def json_data(request): 
    data = words.objects.all() 
    return JsonResponse(list(data), safe=False) 

models.py

class words(models.Model): 
    word = models.CharField(max_length=20) 
    value = models.FloatField(default=0) 
    def __str__(self): 
     return self.word 

url.py

url(r'^api/json_data', views.json_data, name='json_data') 

template/result.html

<script> 
    var J = {% url 'json_data' %}; 
    var JP = JSON.parse(J); 
    document.write("JSON TEST"); 
    for(var obj in JP){ 
     document.write(obj, " : ", JP[obj], "<br>"); 
    } 
</script> 

Das Ergebnis nichts zeigen, auch "JSON TEST". Ich kann nicht verstehen, warum das passiert. Welchen Teil habe ich falsch gemacht?

Antwort

3

Sie haben die Daten von Django noch nicht abgerufen. Sie haben lediglich eine Zeichenfolge mit einer URL erstellt und versucht, diese als JSON zu analysieren.

Stattdessen müssen Sie Ajax verwenden, um die Daten von dieser URL anzufordern und die Antwort zu analysieren.