Пользовательский шаблон продукта в Satchmo - PullRequest
0 голосов
/ 30 января 2010

Я реализую магазин в 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 Ответ

1 голос
/ 30 января 2010

Вы оказались на правильном пути с первым предположением: 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:

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
...