2017-09-07 4 views
0

適応ウェブサイトをアイテム数の関数として持つためには、テンプレートの数をプッシュする必要があります。 models.pyで オブジェクトを数えてテンプレートに結果を含めるには

私は追加get_context

models.pyホームページのテンプレートで

from __future__ import absolute_import, unicode_literals 

from django.db import models 

from wagtail.wagtailcore.models import Page 
from wagtail.wagtailimages.models import Image 
from wagtail.wagtailcore.fields import RichTextField 
from wagtail.wagtailadmin.edit_handlers import FieldPanel 
from wagtail.wagtailimages.edit_handlers import ImageChooserPanel 


class HomePage(Page): 
    auteur = models.CharField(max_length=250,default='Luc Simard') 
    subpage_types = ['LivreDesc'] 
    content_panels = Page.content_panels + [ 
     FieldPanel('auteur', classname="full"), 
    ] 


class LivreDesc(Page): 
    note = models.CharField(max_length=25,null=True,blank=True,) 
    resume = RichTextField(blank=True, verbose_name="Résumé") 
    couverture = models.ForeignKey(
     'wagtailimages.Image', 
     null=True, 
     blank=True, 
     on_delete=models.SET_NULL, verbose_name="Couverture du livre") 
    parent_page_type = ['HomePage'] 
    subpage_types = [] 

    content_panels = Page.content_panels + [ 
     FieldPanel('note'), 
     FieldPanel('resume', classname="full"),  
     ImageChooserPanel('couverture'),  
    ] 

    def get_context(self, request): 
     context = super(LivreDesc, self).get_context(request) 
     context['nb_livres'] = LivreDesc.objects.all().count() 
     return context 

私はこれを追加するが、私は何も表示されない

{{ nb_livres }} 
+0

戻り値の前にコンテキストを記録または印刷して、何か値を送るかどうかを確認することはできますか? –

+0

私はWagtailについてはわかりませんが、Djangoのクラスベースのビューでは、コンテキストにデータを追加するメソッドは 'get_context'ではなく' get_context_data'と呼ばれます。 –

答えて

1

の場合変数をホームページテンプレートで使用できるようにするには、のget_contextメソッドを上書きする必要がありますモデルはLivreDescではありません。

関連する問題