2016-12-17 4 views
0

私はDjango 1.10(Python 3)でサイトを作っています。目的は、私が持っている本と私が読んだものを追跡することです。アプリケーションを分割するための提案ですか?

いくつかの異なるモデルで簡単なCRUDページを作りたいと思います。私が現時点で持っているモデルは、書籍、作家、出版社です。このリストはおそらく成長するでしょう。私はあなたのサイトを小さなアプリに分けることについて読んだ。 CRUDページの1つのアプリ、著者用と出版社向けのアプリです。

これはDjangoの意図ですか?もしそうなら、質問が発生する。どのようにモデルを分離するのですか? Booksモデルには、作成者と発行者に依存するフィールドがあります。しかし、彼らは今自分のアプリに入っているので、どうすればそれにアクセスするのですか?私は彼らが別々のアプリケーションであると考えられているので、別のアプリケーションからインポートするという考えが好きではない。

+0

全く従わないあなたの最後の文でブックモデルにそれをリンクすることです。アプリ全体で関係を作成するのは大丈夫です。実際には、たとえばモデルをユーザーと接続する必要がある場合などがあります。 –

答えて

0

関連する場合は、それらを分離しないでください。その代わりに、モデルの構造を再検討して、それらを再構築することができます。

私は正確なフィールドがAuthorPublisherに属していますが、mayに属するフィールドは1つのモデルにまとめられています。これは単なるアイデアです。

それとも、単にAuthorのようなテーブルを作成することができ、Publisherなど

代わりに大きなものを作るの列の少量を持つテーブルを作成し、基本的には、好意Normalizationという名前のプロセスがあります。

また、this threadも表示されます。

0

いくつかの異なるモデルで簡単なCRUDページを作りたいと思います。私が現時点で持っている のモデルは、Books、Authors、 Publishersです。このリストはおそらく成長するでしょう。私は あなたのサイトをより小さいアプリに分割することについて読んでいます。書籍CRUDページ用に1つのアプリ、投稿者用には 、出版社向けには1つ。

個人的に私は、1つのアプリケーションが3つのモデルを簡単に処理できると思います。

これはDjangoの意図ですか?もしそうなら、質問が発生する。どのように我々は モデルを分離するのですか? Booksモデルには、著者 と発行者に依存するフィールドがあります。しかし、彼らは今自分のアプリにあるので、私はどのように私は にアクセスする予定ですか?私は彼らが別々のアプリであると思われるので、 別のアプリからインポートするというアイデアが好きではありません。

フィールドにアクセスするには、外部キー関係を実装する必要があります。ドキュメントhereを確認してください。

モデルがまだ別のアプリにあると思われる場合は、それらを使用する前にインポートする必要があります。 BookモデルにAuthorモデルが必要であるとします。何をする必要がありますすることは著者のモデルをインポートして、多対多またはForeignKeyの関係:

from django.db import models 
from app_authors.model import Author 


class Book()models.Model: 
    author = ForeignKey(Author, null=True, blank = True, verbose_name = 'Author') 
関連する問題