0

我正在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

但这些似乎都不起作用。

4

1 回答 1

1

您的第一个猜测是正确的:templates/product/product.html。

如果 MyProduct 是这样写的:

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

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

它已向管理员注册:

admin.site.regsiter(MyProduct)

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

{% 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
于 2010-01-30T04:06:02.490 回答