Как создать атрибуты товаров, такие как в 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()