2016-04-07 17 views
0

Google Charts ile grafik verileri için bir dizi veri değerini Javascript'e iletiyorum.Django, listeyi JSON tercih edilen yönteme dönüştürmek?

dizinin veri yapısı böyle görünüyor gerçekten basittir:

[["Plankton", 725], ["MrKrabs", 681], ["Spongebob", 671]] 

Aşağıdaki kod ile şablonda JavaScript dosyası Django verileri geçiyorum:

<script type="text/javascript">top_voters = {{ top_voters_json|safe }};</script> 
<script src="{% static 'spacefinder/index-page-charts.js' %}"></script> 
Index-page-charts.js dizinin Diziye erişmesine izin veren

.

Django içinde listeyi oluşturmak için tercih edilen yöntem hangisi olurdu merak ediyorum.

Sorgu setimi serileştirmek için json.dump kullanmalı mıyım?

Ben iki yöntem uyguladık, sadece yanlısı ve eksilerini her/Django geliştiricileri altı üst öğrencilerin listesini döndürür bu kodla başlar

tercih hangi bilmek istiyorum, ne kadar derecelendirme yaptıklarına göre sıralandı.

top_voters = Student.objects.annotate(num_ratings=count('rating')).order_by('-num_ratings')[:6] 

Yöntem 1 (Json.dump):

student_list = top_voters.values_list('user__username', 'num_ratings') 
top_voters_json = json.dumps(list(student_list), cls=DjangoJSONEncoder) 

Yöntem 2 (Liste-Comp):

top_voters_json = [[e.user.username, e.num_ratings] for e in top_student_voters] 

iyidir/(varsa) daha yaygın, neden?

cevap

0

Bu, python ve Javascript'in benzer veri yapılarına sahip olmasının güzel olduğu zamandır.

Liste anlaşmanız hoş görünüyor ve liste anlama olarak verilerin nasıl görüneceğini çok daha net bir şekilde ortaya koyuyor.

Verilerinizin her zaman [[int, int],] olacağını biliyorsanız, bunun önemi yoktur. Sadece ilkel olduğu sürece sonuç aynıdır.

İlgili konular