Я пытаюсь написать модели для проекта типа инвентаря в Django и не знаю, как наилучшим образом определить мои модели. Должен ли я выбрать абстрактные базовые классы, Multi-Table Inheritance, прокси-модели или что-то еще, чтобы получить мои модели, чтобы вести себя в соответствии с этими требованиями:Какой тип наследования модели выбрать в Django
- Обобщенная модель продукта, который может отслеживать уровень запасов продукта
- пользователи с правами администратора должны иметь возможность добавить новый универсальный продукт с помощью администратора
- конкретных моделей продуктов, которые могут иметь оборудование серийный номер добавлен как атрибут
- конкретного продукта может быть связано с моим заказом/модели Customer
Возможно ли это сделать, и чтобы он соответствовал моим требованиям без каких-либо проблем или есть лучший подход?
class Product(models.Model):
name = models.CharField(max_length=250)
description = models.TextField(blank=True)
price = models.DecimalField(max_digits=8, decimal_places=2)
stock_level = models.IntegerField()
class SpecificProduct(Product):
product = models.OneToOneField(Product)
order = models.OneToOneField(Order)
owner = models.OneToOneField(Customer)
serial_nr = models.CharField(blank=True, max_length=250)
В идеале я хотел бы иметь поведение, которое работает что-то вроде этого:
customer = Customer.objects.create([. . .])
order = Order.objects.create([. . .])
widget = Product.objects.create([. . .])
my_widget = SpecificProduct.objects.create(
product=widget,
order=order,
owner=customer,
serial_nr="12345"
)
я на правильном пути? Любая помощь/совет будут высоко оценены!