Как в Pyramid использовать другое средство визуализации в зависимости от содержимого контекста?

У меня есть 3 разных макета страниц продукта, которые я хотел бы отобразить в зависимости от доступной информации о продуктах. Используя обход, у меня есть класс под названием ProductFinder , который собирает всю информацию. Например, пользователь переходит в домен / зеленый / маленький, и ProductFinder перечисляет все продукты из моей БД, которые являются зелеными и маленькими. Это список self.products в классе ProductFinder . В моем __ init __. Py я добавил строку:

config.add_view('app.views.products', name='')

В products.py у меня есть:

from pyramid.view import view_config
@view_config(context='app.models.ProductFinder', renderer='productpage.mako')
def products(context, request):
    return dict(page=context)

На основе того, что находится в context.products, хотя я хотел бы визуализировать другое mako. В Pylons я бы сделал что-то вроде:

def products(context, request):
    if len(context.products) == 1:
        return render("oneproduct.mako")
    elif len(context.product) == 2:
        return render("twoproducts.mako")

Итак, как я могу визуализировать другой шаблон на основе содержимого моего контекста?

7
задан Brian Tompsett - 汤莱恩 13 June 2015 в 12:59
поделиться