2017-04-16 22 views
0

同様の質問が表示されますが、同じであるか回答がないようです。同じプロジェクト内の2つのアプリケーション間でDjangoユーザモデルを共有

私はDjangoで練習しており、簡単なオランダのオークションプロジェクトを作ろうとしています。最初は、2つの異なるアプリ、バイヤーアプリと売り手アプリを作成し、データベース(または3つのアプリ、commonAppバイヤーアプリとsellerApp)を共有するように考えていました。しかし、これをもっと深く掘り下げればするほど、私はDjangoが本当にテーブルの1つのセットからすべてのデータを共有するように設計された異なるアプリケーションを持っているのではないかと思います(おそらく私は間違っています)これに対応するために移行の仕組みを変更しなければならないことがわかったことに基づいています。

アイデア#2は、ビューを慎重に管理することで機能性を分離し、考えられるデータのほとんどすべて(ユーザー、製品など)からモデルのセットを1つだけ保持するアプリケーションを作成するだけです。 。)とにかく共有されています。これは、Djangoがデータベース設計について汗を流すことなくすべてのデータ管理を行うことができるという利点があるようです。しかし、私はおそらく、ビューを管理することは過度に複雑になるだろうと心配しています。

私はnewbなので、私は考慮していない、この種のプロジェクトには理にかなっているアイデア#3があるかもしれません。おそらくDjangoはこの仕事のための正しいツールではない...

私はプログラミングアイデア#1を試してみましたが、すぐにスパゲッティになり、物事が非常に小さいときにのみ働きました。私は現在アイデア#2に取り組んでいますが、これまでは問題ないと思っていますが、見解を分ける方法を概念化するのに問題がありますが、経験が不足している可能性があります。

私の質問は、この種の情報のための明らかなリソースがありますか?もしそうなら、そのように私に指摘してもらえますか?あなたのDjangoプロジェクト内部

+0

あなたのアイデア#2は正確であるようです。私は同じ方法で複数のプロジェクトを作っています。どの部分が機能していないのですか? –

+0

それはあまりにも何かが動作していないわけではない、私は物事を(この場合は)売り手の間で明確に分離して明確に保つ方法で、ビュー、コマンド、クエリなどを扱う方法がわからないことだと思うそしてバイヤー。ある意味では、私は質問をはっきりと聞くためにもっと知識が必要だと思う。典型的なDjango開発者は、売り手のビューを1つのファイル(seller_views.pyなど)に入れ、バイヤーのビューを別のファイルに入れて混乱しないようにしますか?私はそのようなプロジェクト/アプリケーションのための一般的に受け入れられているベストプラクティスがあるかどうか尋ねていると思いますか? – TrivialCase

答えて

1

manage.py startapp sellers 
manage.py startapp buyers 
manage.py startapp common 

settings.pyにこれら三つのアプリケーションを追加します。あなたのDjangoのバージョンによっては、ちょうど'sellers''buyers''common'または'seller.apps.SellerConfig'のようになります。

モデルをcommon/models.pyに書き込み、両方のアプリケーションに関連するその他のロジックを書きます。あなたの売り手や買い手のビューで次に

、:

from common.models import * # or a particular model

は、この情報がお役に立てば幸いです。

+0

これは私のためにはうまくいきました.Djangoの精神に反して、ビューのないモデルしか含まないアプリを持っていると感じたので、私はそれに前進することに躊躇しました。しかし、フレームワークは実際にこのようなアプリケーションのために設計されていないと思いますか? – TrivialCase

+0

私はそのようなタイプのアプリケーションのために設計されていると思います。私は個人的に5つのアプリケーションを持つ1つのプロジェクトを持っています:顧客のためのもの、売り手のためのもの(ユーザーは異なるがロジックは異なる)、サイト管理者(サイトを稼働させている人)、ETL操作のためのもの、一般的なロジックを持つ一般的なアプリです各アプリは異なるビュー、コマンド、テンプレートを持っています。 –

関連する問題