我正在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
但这些似乎都不起作用。
答案 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