問題のアプリを変更せずにINSTALLED_APPで使用されているモデルを再定義することはできますか?たとえば、django-basic-blogにはフィールドを追加するPostモデルがあります。私はdjango-basic-blogを直接編集することができましたが、コード移植性のためにその上に構築したいと思います。 Postモデルへの既存の参照をすべて保存したいので、私はサブクラス化したくありません。前もって感謝します!Djangoにインストールされているアプリケーションで定義されたモデルをオーバーライドする方法は?
8
A
答えて
11
元のフィールドをサブクラス化すると、元のテーブルには引き続き保存されるため、参照は有効なままです。あなたは猿パッチにしたい場合は
ほとんどが推奨汚い方法ではない既存のクラスは、あなたが変更したいものの後にアプリにロードされるいくつかの
models.py
ファイルでcontribute_to_class
を使用することができます。
models.py:
from django.db.models import CharField
from blog.models import Post
CharField(max_length="100").contribute_to_class(Post, 'new_field')
あなたはこのようにそれを行う場合、あなたは常にあなたの変更は、コードの他の部分と衝突し、あなたのコードを維持するために困難になることができないリスクを露出する必要があります!
関連する問題
- 1. プラグイン内で定義されているモデルをオーバーライドする最適な方法は何ですか?
- 2. 事前に定義されたモデルのメソッドをオーバーライド:「削除()」
- 3. インストールされたpackgeメソッドをオーバーライドする最も良い方法
- 4. クラス内で定義されたenumのstd :: hashをオーバーライドする方法は?
- 5. Drupal 6モジュールで定義されたテーマ関数をオーバーライドする方法は?
- 6. モデルが定義されていない
- 7. アプリケーションコンテキストで定義された単一のBeanをオーバーライドする方法
- 8. Django - インストールされているモデルが見つかりません
- 9. Djangoにインストールされているアプリの使い方は?
- 10. 私のように定義されたドクトリン2モデル持っているモデル
- 11. Djangoプロジェクト:複数のモデルで使用されるモデル定義の場所
- 12. Pysideで定義されたモデルでQListViewを使用する
- 13. メソッドが定義されたクラスを決定する方法は?
- 14. インストールされたアプリケーションの.apkファイルをバックアップする方法は?
- 15. defで定義された関数をプロットする方法は?
- 16. ジャスパーファイルで定義されたパラメータを取得する方法は?
- 17. 指定されたiOS ipaファイルに定義されているNSStringを表示する方法
- 18. Androidにインストールされているアプリケーション名を取得する方法は?
- 19. メディアクエリを使用してJavaScriptで定義されたプロパティをオーバーライドする
- 20. ASP.NET MVC 3の特定のビューの_ViewStartで定義されたレイアウトをオーバーライドする方法は?
- 21. Eclipse:project.propertiesに定義されたライブラリパスをオーバーライドします
- 22. ランチャーで指定されている場合、入力アクティビティアニメーションをオーバーライドする方法
- 23. Djangoはテスト中にインストールされたアプリケーションからインストールされたものではありません
- 24. ngモデルの値は常に定義されていません
- 25. エラー「定義されたアプリケーションまたはオブジェクト定義のエラー」マクロ
- 26. Cで以前に定義された定数を使用して静的constを定義する方法は?
- 27. デバイスにインストールされているアプリケーションの名前を見つける方法は?
- 28. Djangoモデルでは、NOT NULLとして定義されたフィールドの空白値を受け入れます。
- 29. ネストされたリソースはRailsの中で定義されてい
- 30. 接続された二部グラフを定義する方法は?
私はあなたが1のための例を提供してくれればうれしいです;) – Jannis