0

Django でインベントリ タイプのプロジェクトのモデルを作成しようとしていますが、モデルを最適に定義する方法がわかりません。これらの要件に従ってモデルを動作させるために、抽象基本クラス、複数テーブルの継承、プロキシ モデルなどを選択しますか?

  • 製品の在庫レベルを追跡できる一般的な製品モデル
  • 管理者ユーザーは、管理者経由で新しい汎用製品を追加できる必要があります
  • ハードウェアのシリアル番号を属性として追加できる特定の製品モデル
  • 特定の製品を注文/顧客モデルに関連付けることができます

これを行うだけで問題なく要件を満たすことができますか、それともより良いアプローチがありますか?

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"
)

私は正しい軌道に乗っていますか?どんな助け/アドバイスも大歓迎です!

4

1 に答える 1