2011-12-14 12 views
1

現在、従業員用の在庫管理システムがあります。それは ラップトップ、携帯電話、人間工学に基づいた椅子、冷蔵庫またはソフトウェアを含んでいます ライセンス...管理者が作成/読み取り/ 更新/削除できる非常に異なるもの。多型アイテムと管理可能なアイテムタイプを使用した在庫システムのコーディング

管理インターフェイスに基づいて完全にバージョンを実行した後、私は をあきらめましたが、十分な柔軟性が得られなかったためです。だから私は完全な カスタムバージョンをロールアップしましたが、私の好みにはあまりにも多くのコードがあります...それは維持するために の痛みです。

私が直面している問題のいくつか

は、次のとおりです。

  • は、例えば、管理者は インタフェースを介して、独自のアイテム・タイプを追加することができます:ラップトップ、テレビ、...基本的には、Djangoモデルをインターフェイスを介して一連の属性で作成できるかのように。アイテムタイプも階層型です(例:テレビ とラップトップは、順番に項目の サブクラスであるElectronicItemのサブクラス、...

  • 多型以下のとおりです。すべての項目をリストするとき、彼らは彼らがどのようなタイプの 認識しておく必要があり、このために、 javascriptを使用してリストを検索/フィルタリングし、アイテム詳細ビューへのURLも生成します。

  • Ajaxによっていくつかの属性を更新します。ラップトップには ライセンスがあります。ラップトップの詳細ページでは、私は、そのラップトップに アソシエート/デタッチのライセンスに、javascriptの "manager"を持っています。

だから私は誰に何を使用するかについての提案があったのだろうかと思っていました。私は 特にCMSの機能のように聞こえるので、django CMSesのアプリのうちの1つが私に助けてくれたら、 と思っています。私はNOSqlデータベースを考えていました...しかし、それらは複雑なソリューションのように聞こえます。

私はDjangoのこの多形性の問題に直面しているのは実際には初めてではありません。まだ良い解決策を見つけられていません。だから私は一種の希望です。彼らは私が完全に逃したことがあり、誰かが私に光を見せることができます!

答えて

0

オクラホマ...執筆の時点では、ジャンゴはそれでうまくいきません。

mongodbなどのスキーマフリーデータベースはこの問題の良い解決策であり、Djangoはそのままの状態でこれらのデータベースをサポートしていません。

私はDjangoをあきらめ、全体をnode.jsにmongodbデータベースで書き換えました。

3

Satchmo projectは、Djangoベースの電子商取引ソリューションであり、特定の製品に対してさまざまな製品とさまざまなオプションを管理できます。たぶんそこにインスピレーションを感じるかもしれません。

継承と多型管理のためのもう1つの優れたツールは、Django model utilsプロジェクトです。InheritanceManagerです。

私はプロダクションでは、さまざまな種類の製品(シャツ、ジャケットなど)を管理するために使用しています。本当に役に立ちます。

**編集**

必要に応じて、継承の例。私は理由this issueの、select_relatedでコードを動作させるためにいくつかのことを微調整しなければならなかった

class Product(models.Model): 
    objects = InheritanceManager() 
    client = models.ForeignKey('clients.Client') 
    price = models.PositiveIntegerField() 


class Shirt(Product): 
    color = … 

class Pants(Product): 
    … 

products = Product.objects.all().select_subclasses() 
# products[0] can be a Shirt, and products[1] can be a Pants 

注意。

+0

こんにちは、私はいつも生産に継承して働くように誘惑されましたが、私は決して勇気づけませんでした。あなたは本当に相続に慣れていますか?あなたはいくつかの例を継承することができますか(継承を持つモデルといくつかのクエリスルー・モデル:シャツやジャケットの製品、価格> X、タイプを取得する製品...)。どうもありがとう! – danihp

+0

django-model-utilsは本当にうまく見えますが、私はそれについて知りませんでした!多形性の問題を解決するだろうが、私はそれが "インターフェイスを介して自分のモデルを追加する"問題を解決するとは思わない。私はSatchmoを調べます。 – sebpiq

+0

@sebpiq [動的モデル作成](https://code.djangoproject.com/wiki/DynamicModels)を使用して、db形式のデータから動的に 'Product'サブクラスを作成することができます。しかし、それはちょっと複雑になり始めています:) –

関連する問題