Bonjour, je suis actuellement nouveau sur django/wagtail. Je travaille sur une page à propos de mon travail et de mes positions actuelles et précédentes. J'ai fait les positions streamfield blocks car la quantité d'expérience n'est pas limitée. Voici le code de mes modèles.Rendu streamfield bloquer d'une certaine manière si booleanBlock est vrai
#Create experience block
class ExperienceBlockStruct(StructBlock):
position_title = CharBlock(help_text="Enter a previous position title.")
description = CharBlock(help_text="Job description")
current_position = BooleanBlock(required=False, help_text="Check if
current position")
class Meta:
template = 'blocks/experience_block.html'
class ExperienceBlock(StreamBlock):
experience = ExperienceBlockStruct(icon="form")
Et voici la page où j'utilise les modèles
class About(Page):
profile_pic = "some image reduced code bc it currently works"
bio = RichTextField(blank=True)
resume = "some document reduced code bc it currently works"
experience = StreamField(ExperienceBlock())
content_panels = Page.content_panels + [
ImageChooserPanel('profile_pic'),
FieldPanel('bio'),
DocumentChooserPanel('resume'),
StreamFieldPanel('experience'),
]
Maintenant, la question que je vais avoir est de savoir comment rendre les blocs dans lesquels les current_position = True
dans une autre région que ceux qui ne sont pas. J'ai essayé
templates/about.html
{% for block in page.experience %}
{% if block.current_position %}
{% include_block block %}
{% endif %}
{% endfor %}
Mais qui ne marche pas quoi que ce soit rendu. J'ai aussi essayé de
<div class="experience">
{% if value.current_position %}
{{ value.position_title }}
{% else %}
{{ value.position_title }}
{% endif %}
</div>
mais qui crée une nouvelle div pour chaque bloc. Ce que je voudrais réaliser quelque chose comme dans blocks/experience_block.html
<div>
Current position(s): {% blocks with current_postion == True %}
</div>
<div>
Past position(s): {% blocks with current_postion == False %}
</div>
Comment pourrais-je aller sur la réalisation de quelque chose comme ça?