問題タブ [django-inheritance]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
22527 参照

python - Django テンプレート: 拡張されたテンプレートを使用して、含まれている子テンプレートのブロックをオーバーライドする

次の風変わりなテンプレート構造を処理する方法を誰かが知っているかどうか疑問に思っています:



そして、問題の核心:


問題は、テンプレートを拡張するときに、親で宣言されたブロックのみをオーバーライドでき、その子はオーバーライドできないことです。

base.html を、将来のすべての不測の事態をカバーする空の未使用のネストされたブロックの殻にすることができると思いますが、それでも適切に上書きされますか? そして、それが唯一の方法ですか?

base.html を中心に双方向のインクルード/拡張ワークフローを使用している理由を知りたい場合は、プロジェクト全体で使用したい多くのサブテンプレートがあります: ヘッダー、フッター、ナビゲーション、サイドバーなど。それらはすべてサイト全体で構造が一貫していますが、多くの場合、サイトのサブディビジョン全体でこれらのサブテンプレートのいくつかしか必要ありません。私の考えは、templates/base フォルダーの下にサブテンプレートを定義し、templates/base-type1.html、templates/base-type2.html などを他の場所に拡張することでした。各タイプは、必要なサブテンプレートのみを参照し、必要に応じてそれらをオーバーライドしてコンテンツを配置します。

0 投票する
1 に答える
528 参照

django - イメージストア モデルの拡張

プロジェクトに imagestore アプリをインストールしようとしています。デフォルトのモデルが正常に作成され、他のすべてのパーツが適切に機能しています。

ただし、ベース (抽象) モデルを拡張し、いくつかの複雑なメカニズムによって独自のモデルを作成する機能があります。これは私のモデルです:

またIMAGESTORE_ALBUM_MODEL = 'art.models.Newalbum'、設定に文字列があります。syncdb を実行すると、バックエンド モジュール「art.models」が「Newalbum」クラスを定義していないことがわかります。(「モジュール」オブジェクトには属性「Newalbum」がありません)。しかし、もちろんそれは定義しました。

そして奇妙さは始まったばかりです。imagestore がモデルを取得しようとしている場所にデバッグ ステートメントを配置すると、適切なモジュール (既にインポートされている) と適切なクラス名 (文字列) が出力されます。しかし!dir(mod)「from imagestore.models.bases.album import BaseAlbum」の前に表示された変数のみを出力します。上記の例では、「モデル」とデフォルトの下線付き属性のみを表示します。なんで?モジュールのインポートについてわからないことはありますか?

私はすでに、設定プロパティ、djangoのバージョン(および必要なアプリ)、app_labelなどの多くの厄介な組み合わせでインストールしようとしました。設定に IMAGESTORE_ALBUM_MODEL を追加しないとテーブルが作成されますが、このモデルには BaseClass の動作がありません。それで、私は何を間違っていますか?

0 投票する
2 に答える
100 参照

django - Django の子オブジェクトから基本クラスを選択するにはどうすればよいですか (モデル継承を使用)

基本モデルとそれを継承するモデルがあり、セットアップは次のようになります。

子クラスから基本クラスにアクセスするにはどうすればよいですか? 例えば:

ドキュメントによると、子で自動的に作成された 1 対 1 の関係にすぎないので、逆行できると考えました。これが必要な理由は、アーカイブへの外部キーを持つ 3 番目の非アーカイブ モデルがあるためです。3 番目のモデルは、特定のアーカイブ タイプだけでなく、任意のアーカイブに関連付けることができるため、アーカイブへの外部キーが必要です。

0 投票する
1 に答える
596 参照

django - 他のモデルのフィールドでのDjangoモデルの継承

私は次のモデルを持っています:

いいえ、 で DetailView を使用してCarTurboEngineますが、car.engine.speed()100 を返します。正しいクラスを選択するにはどうすればよいですか?

0 投票する
2 に答える
1822 参照

django - ジャンゴ多重継承

私は現在、複数のレガシーを行う必要があるdjangoプロジェクトに取り組んでいます。プロジェクト自体には、複数の Web サイトを持つ管理者がいます。私の管理部分では、メンバーのすべての必須情報を含む Member クラスを作成しました。次に、すべての個々のサイトには、すべての補足情報を追加する管理者の Member クラスから作成された MemberExtra クラスがあります。サーバーを起動すると(python manage.py runserver ...)、そのエラーが発生しました:

管理者/models.py:

programsite/models.py:

gourmandiz/models.py:

0 投票する
1 に答える
255 参照

django - 派生モデルのファイルフィールドが利用できません

ベースモデルとそこから派生したモデルがあります。基本モデルは抽象的ではないため、テーブルも関連付けられています。

問題 : 最初に基本インスタンスを作成し、次に派生インスタンスを作成します。そして、派生インスタンスをベースに関連付けます。しかし、親で保存されて利用可能であってもFileField、派生クラスを として取得します。Noneなんでそうなの?何か不足していますか?

サンプルコード:

django シェルのサンプル:

更新: @dgel の回答:

  • save_base()派生オブジェクトを保存しますか? dobjその後、id を取得しません。
  • その後dobj.save()、基本クラスの属性が派生クラスの属性によって上書きされているようです。
  • デフォルトctimeで作成時間を追加しました。したがって、派生オブジェクトを保存すると、派生オブジェクトの時間を節約するために更新されます。BaseModeldatetime.datetime.utcnowctime
  • sqlitebrowserでDB を見るとfilepath、行のフィールドBaseModelが空です。

ありがとう。

0 投票する
1 に答える
105 参照

python - Django はプロキシを使用して複雑な継承をモデル化します

私はこれらのモデルを持っています:

今、私は彼らと少し遊んでいますが、問題が見つかりました:

最後の行は予期しない方法で機能します。ドキュメントをよく見て、Djangoの自動ダウンキャスト属性を検索しましたが、A()いずれも自動キャストされていないクラスの1つだけが見つかりましたB()or C().

データを保存するときにも継承を保存する方法はありますか? ありがとう!

0 投票する
1 に答える
72 参照

django - djangoの継承は私の脳を傷つけます

私はビールのウェブサイトを作っています、そして私は立ち往生しています。私は多くの異なる成分に関連することができるレシピを持っている必要があります。「材料」というモデルを作成し、「ホップ」、「穀物」など、さまざまなモデルを継承する方法はありますか。レシピと材料の関係があるので、これを実行したいと思います。材料の種類ごとにカバーする100の異なる関係を作成します。

これは可能ですか?

0 投票する
2 に答える
392 参照

django - 既存のベースモデルインスタンスから継承されたdjangoモデルインスタンスを作成するにはどうすればよいですか?

私はこれらのような2つのdjangoモデルを持っています:

以前Place、次のようなインスタンスを作成しました。

今、ボビーは彼の露天商をレストランにアップグレードしました。コードでそれを行うにはどうすればよいですか?!このコードが機能しない理由: