我的数据库中列出了两个类别。
我想根据选择的类别更改模板(templates> product> category.html)。 (这是因为我想改变每个类别的配色方案和标题图片)
我该怎么做?我可以更改
中指定的模板吗?def category_view(request, slug, parent_slugs='', template='product/category.html'):
位于product.views?
由于
这是我的category_view,它返回一个http500错误和一个无效的语法python django错误。
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))
答案 0 :(得分:1)
如果您查看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))
将模板作为函数参数传递只是satchmos方式,可以将不同的模板传递给视图。但你可以随时覆盖它。仔细查看这里的文档:http://docs.djangoproject.com/en/1.2/topics/http/views/