Satchmo, Хотите изменить шаблон в зависимости от того, какая категория товара выбрана - PullRequest
0 голосов
/ 26 февраля 2011

У меня есть две категории, перечисленные в моей БД.

Я бы хотел изменить шаблон (шаблоны> product> category.html) в зависимости от того, какая категория была выбрана.(Это потому, что я хочу изменить цветовую схему и изображения заголовков для каждой категории)

Как я могу это сделать?Могу ли я изменить шаблон, который указан в

def category_view(request, slug, parent_slugs='', template='product/category.html'):

, который находится в product.views?

Спасибо


Это мой category_view, который сейчас возвращаетошибка http500 и неверный синтаксис python django error.

def category_view(request, slug, parent_slugs='', template='product/category.html'):
    """Display the category, its child categories, and its products.

    Parameters:
     - slug: slug of category
     - parent_slugs: ignored
    """
    try:
        category =  Category.objects.get_by_site(slug=slug)
        products = list(category.active_products())
        sale = find_best_auto_discount(products)

    except Category.DoesNotExist:
        return bad_or_missing(request, _('The category you have requested does not exist.'))

    child_categories = category.get_all_children()

    ctx = {
        'category': category,
        'child_categories': child_categories,
        'sale' : sale,
        'products' : products,
    }

    if slug == 'healing-products'
        template = 'product/i.html'
    if slug == 'beauty-products'
        template ='product/category_beauty.html'

    index_prerender.send(Product, request=request, context=ctx, category=category, object_list=products)
    return render_to_response(template, context_instance=RequestContext(request, ctx))

1 Ответ

1 голос
/ 26 февраля 2011

Если вы посмотрите учебные пособия на сайте Django и другие места в документации, вы обнаружите, что это обрабатывается так, что довольно легко использовать различные шаблоны:

from django.shortcuts import render_to_response
from django.template import RequestContext

def category_view(request, slug, parent_slugs=''):
    if category=='category1':
        return render_to_response('template1',RequestContext(request))
    if category=='category2':
        return render_to_response('template2',RequestContext(request))  

Передача шаблона в качестве параметра функции - это просто способ, позволяющий передавать различные шаблоны в представление. Но вы можете изменить это в любое время. Ознакомьтесь с документами здесь: http://docs.djangoproject.com/en/1.2/topics/http/views/

...