2017-09-07 2 views
0

J'ai besoin de pousser le nombre d'éléments au modèle pour avoir un site web adaptatif en fonction du nombre d'éléments.Comment compter l'objet et inclure le résultat dans le modèle

Dans le models.py ajouter 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 

dans le modèle de HomePage ajouter cela, mais je ne vois rien

{{ nb_livres }} 
+0

pouvez-vous vous connecter ou imprimer le contexte avant le retour juste pour voir si vous envoyez quelque chose aux valeurs? –

+0

Je ne sais pas Wagtail, mais généralement dans les vues basées sur les classes Django, la méthode pour ajouter des données au contexte s'appelle 'get_context_data', et pas seulement' get_context'. –

Répondre

1

Si vous souhaitez que la variable soit disponible dans le modèle de page d'accueil, vous devez remplacer la méthode get_context sur le HomePage modèle pas LivreDesc.