私はアプリケーションブログを作成すると言います[これはちょうどそこにあるのでapp.blog.postsを行うことができます - それは本当に単なるフォルダです]そしてブログの私ですブログの内部にアプリの投稿を作成し、投稿はモデル投稿を定義します。私はこれをした後、私はモデルの投稿(またはポストのような任意のモデル - 投稿するカテゴリフィールドを追加する)を拡張する必要がありますし、独自のテーブルを作成するブログでアプリケーションのカテゴリを作成します。これらのアプリケーションが完全に無関係な場合(exg:django-tags)、カテゴリはどのようにして最終的にそれを認識することなく投稿を拡張することができますか?私はちょっと混乱しているので、誰かが私に説明することができます(すでに例はないが、このような考え方に従う良い例は見つけられませんでした)。Django looseカップリングと既存のモデルを拡張する
0
A
答えて
2
"extend"何らかの形で機能を追加するには、一般的にsignalsが良いアイデアです。シグナルを使用すると、モデルファイルを変更することなく、モデルのメソッドの一部にフックすることができます。
ブログ投稿にカテゴリが必要な場合は、ブログ投稿に外部キーを使用するとどうなりますか?
djangoアプリケーションをできるだけジェネリックとして設計することは、常に良いアイデアです。つまり、再利用する可能性が高い場合は、独自のアプリケーションにしてください。
+0
モデルファイルを修正せずにモデル信号のリスニングの例を挙げることはできますか? –
関連する問題
- 1. EMF既存のモデルを拡張する
- 2. 既存のweb2pyデータベースを拡張する
- 3. 既存のページコンテンツと対話するFirefox拡張子
- 4. Djangoモデルsyncdb既存テーブルの作成
- 5. Shopwareモデルを拡張する
- 6. Djangoのモデル/フォーム - 既存のモデルを取得し、別の
- 7. C#インターフェイスを使用して既存のアプリケーションを拡張する
- 8. auth.Userモデル、プロキシフィールド、およびDjango管理者を拡張する
- 9. Symfonyの既存のクラスを拡張する
- 10. OCamlの既存の型を拡張する
- 11. 既存のクラスのインデクサーを拡張する
- 12. djangoビューを拡張する
- 13. 既存の拡張メソッドをオーバーライドする方法
- 14. 既存のSplitContainerを新規作成または拡張する
- 15. JAXBマーシャリング - 既存のクラスを拡張する
- 16. 既存のjQuery関数を拡張する
- 17. 既存のEclipseプラグイン拡張を上書きする
- 18. Jquery既存の関数を拡張する
- 19. Scalaで既存の列挙型オブジェクトを拡張するには?
- 20. 既存のプロファイルを更新する方法Djangoモデルのフォーム
- 21. Django拡張エラーメッセージ
- 22. 既存のDjangoモデルにフィールドを追加する
- 23. ManyToManyFieldを既存のdjangoモデルに追加するには?
- 24. CakePHPモデル拡張アソシエーション
- 25. 既存のTypeConverterを拡張することは可能ですか?
- 26. 永続性をサポートするために既存のRubyモデルを拡張する方法
- 27. がマルチテーブル継承のための既存のモデルを既存の
- 28. Chrome拡張コンテンツスクリプトで既存のjQueryを使用しますか?
- 29. Djangoは既存のモデルを上書きしています
- 30. Djangoテンプレート(拡張CSS)
[Djangoの一般的な関係](https://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/#generic-relations)が解決策を提供するかもしれません。 [この記事](http://blog.swierczynski.net/2010/08/generic-relationships-in-django/)は、それらの行動を示しています。 – Paolo