Прежде всего я хотел бы отметить, что я не опытный программист.
Скажем, есть модель Product, и есть несколько типов продуктов с разными атрибутами (ну, например, 2 типа).
У меня есть одна модель BaseProduct с пользователем, creation_date, creation_ip и некоторыми другими атрибутами и дочерними моделями с подклассами с указанными для этого типа атрибутов продукта.
Class BaseProduct(models.Model):
name = models.CharField()
type = models.CharField()
creation_date = models.DateField()
creation_ip = models.IpAddressfield()
class ProductTypeX(BaseProduct):
attribute_1 = models.ForeignKey(some_other_model)
attribute_2 = models.ForeignKey(some_other_model2)
class ProductTypeY(BaseProduct):
attribute_1 = models.ForeignKey(some_other_model)
attribute_2 = models.ForeignKey(some_other_model2)
Существует возможность создания оповещения по электронной почте о создании нового продукта на основе некоторых критериев, а также «быстрый предопределенный поиск» на основе некоторых критериев. Для них я создал (снова ...) модели.
class BaseAlert(models.Model):
name = models.CharField()
email = models.BooleanField()
sms = models.BooleanField()
ProductTypeXAlert(BaseAlert):
attribute_1 = models.ForeignKey(some_other_model)
attribute_2 = models.ForeignKey(some_other_model2)
ProductTypeYAlert(BaseAlert):
attribute_1 = models.ForeignKey(some_other_model1)
attribute_2 = models.ForeignKey(some_other_model2)
class BasePredefinedSearch(models.Model):
name = models.CharField()
ProductTypeXPredefinedSearch(BasePredefinedSearch):
attribute_1 = models.ForeignKey(some_other_model1)
Это правильное решение или я должен создать какую-то универсальную модель атрибутов для оповещения, предопределенный поиск ?? .. Я повторяю здесь поля атрибутов много раз. Что вы думаете об этом?
Спасибо