2016-03-30 7 views
0

içinde yüksek bir skor render Bu yüzden bir süper basit oyun-app (soruları cevaplamak, puan almak) yazıyoruz ve biz her ekranın yan çubuğunda yüksek bir skor oluşturmak istiyoruz sayfa. böyleceNasıl base.html

top_list = User.objects.filter().order_by('-score')[:10] 

:

Yani Django otomatik (tür) nasıl geçmesine (biz sunumu kullanarak() varsa) ama emin değilim temelde nasıl olacak argüman olarak doğrulanmış kullanıcının geçer anlıyoruz temel şablonumuzdaki güzel küçük bir listeyi düzeltebiliriz :)

Örneğin, this one gibi farklı sorulara etrafımızdan baktık ve çözümün kendi içerik işlemcimizi yazmak için olup olmadığını düşündük.

DÜZENLEME: this yinelenen bu yüzden belki bunun yerine özel bir şablon etiketi yazmalıdır olabilir mi?

from django import template 

register = template.Library() 

@register.assignment_tag 
def get_top_list(): 
    top_list = User.objects.filter().order_by('-score')[:10] 
    return top_list 

Ve sonra şablonlar kullanmak: myapp/templatetags/ altında

aşağıdakileri yapın bir myapp_tags.py ve __init__.py

myapp_tags.py yılında oluşturmak

cevap

1
Bunu yapmak için django şablon etiketleri kullanabilirsiniz

.. bunun gibi:

{% load myapp_tags %} 

{% get_top_list as top_list %} 

{% for top_user in top_list %} 
... 
+0

Teşekkürler! Css/html'de yan çubuk yapmayı öğrendiğimizde, uygulamanın işe yarayıp yaramadığını kontrol edeceğim! Ama sağlam bir çözüm gibi geliyor! :) – MrJalapeno

İlgili konular