satchmo中的自定义产品模板

时间:2010-01-29 22:35:18

标签: django templates satchmo

我正在satchmo中实现一个商店。我使用产品模型中的模型继承创建了自定义产品 MyProduct (如http://thisismedium.com/tech/satchmo-diaries-part-one/所示)。

现在,我想为 MyProduct 创建一个自定义产品详细信息模板,并且只有 MyProduct 。我尝试在

中创建模板
/project/templates/product/product.html

但是这会覆盖商店中所有商品的模板,而不仅仅是 MyProduct 。我也尝试过:

/project/templates/product/detail_myproduct.html
/project/templates/product/myproduct.html

但这些似乎都不起作用。

1 个答案:

答案 0 :(得分:1)

您在第一次猜测时走的是正确的道路:templates / product / product.html。

如果MyProduct是这样写的:

class MyProduct(Product):
    # ...
    steele_level = model.IntegerField()

    objects = ProductManager()  # using this object manager is key!

它已在admin:

注册
admin.site.regsiter(MyProduct)

然后,您应该可以在管理员中创建新的MyProduct,然后在product / product.html中的产品上关闭myproduct属性:

{% if product.myproduct %}
    This is a MyProduct with Steele Level: {{ product.myproduct.steele_level }}!
{% endif %}

或者如果您更喜欢在./manage.py shell中搞乱:

from project.models import MyProduct
from satchmo_store.shop.models import Product

for p in Product.objects.all():
    print p 
    if hasattr(p, 'myproduct'):
        print "  >>> That was a MyProduct with steele_level %s" % p.myproduct.steele_level