Me gustaría implementar la página de categorías usando wagtail pero es bastante difícil de entender para un programador novato. Al seguir el tutorial de wagtail (para comenzar), el campo de categorías se implementa en su tutorial oficial, pero no sé cómo obtener acceso

Por ejemplo, en Django, si defino dos modelos como Categorías y Publicaciones, puedo acceder a artículos que pertenecen a una categoría específica usando una clave externa y haciendo una vista usando algo como Category.posts_set.all ()

Pero, ¿cómo puedo hacerlo en lavandera? Gracias por su ayuda de antemano.

0
BangolPhoenix 31 jul. 2020 a las 13:53

1 respuesta

La mejor respuesta

Si desea enumerar todas las categorías de, por ejemplo, una página de índice de categorías, entonces deberá obtener todas las categorías y agregarlas al contexto. Suponiendo que la estructura de su modelo es la misma que en el tutorial en https: // docs.wagtail.io/en/latest/getting_started/tutorial.html#categories, entonces puedes hacerlo

class CategoryIndexPage(Page):
    
    # ... other fields go here

    def get_context(self, request, *args, **kwargs):
        context = super().get_context(request, *args, **kwargs)
        context["categories"] = BlogCategory.objects.all()
        return context

Luego en su plantilla:

    {% if categories %}
        <h3>Categories</h3>
        <ul>
            {% for category in categories %}
                <li style="display: inline">
                    {% image category.icon fill-32x32 style="vertical-align: middle" %}
                    {{ category.name }}
                </li>
            {% endfor %}
        </ul>
    {% endif %}
1
nimasmi 31 jul. 2020 a las 11:10