2010-08-03 25 views
27

Benim Django uygulamamdır Belirli bir model için tüm nesneleri getiriyorum:Django şablonlarında model için nesne sayısını nasıl alabilirim?

secs = Sections.objects.filter(order__gt = 5) 

Bu varbiles şablonuma aktarıyorum ve section.name, section.id gibi modelin tüm özelliklerine erişebiliyorum,

Sections modeli için bir FK'ye sahip Books adında bir model vardır. Şablonumda secs değişkenini aştığımda, her Bölüm için Kitap sayısına nasıl erişebilirim? Xzx17 gibi bir şey mi ??

Teşekkür ederim

cevap

59

ise ederiz, o zaman Django otomatik books_set adı verilecek geri Kitaplar Kesimler'den ters ilişki, yaratacaktır. Bu bir Yöneticidir, yani üzerinde .filter(), .get() ve .count() kullanabilirsiniz ve bunları şablonunuzda kullanabilirsiniz.

{{ sec.books_set.count }} 

(Bu arada, size model isimleri, değil çoğul için tekil isimleri kullanmalıdır -. Book yerine Books o modelin bir örneği çok değil, bir kitaba ilişkin bilgileri tutar.)

9

Ayrıca Daniel'in dediği gibi, Django, isimlerini ilgili_adı argümanı ile geçersiz kılmadıkça (Daniel'in dediği gibi) otomatik olarak ters ilişki kurar. Eğer söz konusu ima gibi

{{ sec.books.count }} 

: tarafından şablonda

class Book(models.Model): 
    section = models.ForeignKey(Section, related_name="books") 

Sonra bölümün kitaplarını erişebilirsiniz

önemlidir: özel durumda, gibi bir şey olurdu.

İlgili konular