Как создать атрибуты товаров, такие как в django-shop

Мне понравилось, как django-shop создает новые атрибуты продуктов, развивая модель продуктов. Пример: SmartPhone... Я хотел бы добавить атрибуты продуктов таким же образом, но я не знаю, с чего начать. По своему опыту, когда я копирую код из приложения, я заканчиваю тем, что удаляю приложение, так как оно работает неправильно.

Моя модель продукта:

`class Product(models.Model):
     name = models.CharField('name', max_length=32)
     slug = models.SlugField('slug', max_length=32)
     description = models.TextField('description')

     class Meta:
          ordering = ['name']`

Было бы здорово, если бы вы могли посоветовать мне, как добавить похожие атрибуты продуктов. Таким образом, я мог бы создавать атрибуты, как в этом примере. Я не хочу копировать все приложения, потому что есть много вещей, которые мне не нужны. [Пример смарт-карты] [1] https://github.com/awesto/django-shop/tree/master/example/myshop/models

1 ответ

Прежде всего, вы должны решить, нужен ли вам полиморфный подход или нет. Я предполагаю, что ваши продукты не сильно отличаются друг от друга, поэтому вам не нужен полиморфизм.

Поэтому чего-то такого, как пример смарт-карты, должно быть достаточно:

from shop.money.fields import MoneyField
from shop.models.product import BaseProduct, BaseProductManager, CMSPageReferenceMixin
from shop.models.defaults.mapping import ProductPage, ProductImage

class Product(CMSPageReferenceMixin, BaseProduct):
    # common product fields
    product_name = models.CharField(max_length=32)

    slug = models.SlugField()

    unit_price = MoneyField(decimal_places=3)

    description = models.TextField("Description")

    objects = BaseProductManager()
Другие вопросы по тегам