問題タブ [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 投票する
0 に答える
237 参照

django - proxy=True のモデルでの Django 呼び出しメソッド

したがって、子モデルがプロキシであることを除いて、単純なモデル継承があります。問題は、私の見解では、私がそうする場合:

そして、私は電話します

set_siblingsもう1 つのパラメーター (the ) が必要なため、エラーが発生しますrelation_typeConceptモデル内のメソッドが呼び出されています。印刷するconcept.__class__.__name__と が表示されますConcept。では、どうすればモデルのset_siblings内部を正しく呼び出すことができますか?Term

ここにドキュメントがありますが、問題を明確にするのに役立ちません。

models.py

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

python - Django - ターゲットモデルに継承されたForeignKeyを中間テーブルで使用することは可能ですか?

私はdjango 1.4を使用しており、次のモデルがあります:

Newsletter次のようなことをして、ビューにオブジェクトを作成すると:

Newsletterオブジェクトとオブジェクトの両方が作成されていることがわかりNewsletterReceiverます。新しく作成されたものからと のipython両方を照会する場合はすべて問題ありませんが、インスタンスから受信者を照会すると、django は私が理解できないことについて不平を言います:usernewsletterNewsletterReceiverNewsletter

これForeignKeyは対象機種への仕様が引き継がれているためでしょうか。そのための回避策はありますか、それともモデルをリファクタリングする必要がありますか?

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

python - Django モデルの一種のマルチテーブル継承が機能しない

Elmasri & Navathe の「Fundamentals of database systems」で説明されているように、DB 設計に階層を作成したいと考えています。

これは、多くのクラス/テーブルで共有される情報がある場合、それをメインの親テーブルに配置し、メインのテーブル ID を子テーブルの外部キーとして使用できることを意味します。これは一種の弱いエンティティです。

抽象継承とマルチテーブル継承を使用してみました (この最後のものでは、OneToOneField を指定できません。django docs でこれを見つける場所がわかりません)。

私の例はここにあります(クラスごとに1つのテーブル):

私の目標は、次のような 2 つの文だけで DB に卒業生を作成することです。

この 2 行で 2 つの行が挿入されます。1 つは Person 用、もう 1 つは Alumn 用です。ここにあるこのスニペットの alumnId 属性は省略できます。これは、常に personId と同じになるためです (前述のとおり、弱いエンティティのようです)。

私は django の初心者ですが、ドキュメンテーションを見て、abstract=True でいくつかのことを証明しましたが、成功していませ。子クラス。

選択する正しいパスはわかりませんが、データベースの設計を変更したくないことは間違いありません。助けてください。

前もって感謝します。

0 投票する
0 に答える
1658 参照

django-models - Django REST Framework のネストされたシリアライザーと select_related

次のセットアップがあります。django-rest-framework と django-model-utils InheritanceManager を使用して、子オブジェクトを自動的に取得しています。

私の問題は、select_relatedが正しく機能していないことです。検索アクションを呼び出すと、デバッグ ツールバーに 1 つではなく 2 つのクエリが表示されます。1 つ目は、ロケーション テーブルとの予想される内部結合です。ただし、ロケーション テーブルへの追加のクエリがあります。

だから私はselect_relatedテーブルを結合するために使用していますが、どういうわけかシリアライザーはデータベースに追加のクエリを作成します。

残りのフレームワークを使用せずにオブジェクトを直接取得すると、

例外として機能し、データベースに1回だけヒットします。

これを解決する方法を知っている人はいますか?

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

django - Django モデル db_table の継承/注入

レポートの目的で、Django と AWS Redshift の統合を行っています。これまでのところ、django はうまく機能していないように感じます。私が遭遇した問題の 1 つは、Redshift でサポートされていないため、AutoField タイプではなく、モデルごとに別のタイプ ID を設定する必要があることです。これまでのところとても良いですが、使用するすべてのモデルに対してすでにスーパークラスを実行している場合、途中でテーブル名を変更します.djangoが与えるデフォルトの名前は好きではありません.データベース内のモデルです(app_name__model_name)。すべてのサブモデルでそれを行うことができました(以下を参照)。しかし、各サブモデルがクラス名に従って独自のテーブル名を受け取るように、BaseModel で動的に宣言したいと思います。

そのようなことさえ可能ですか?

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

django - django継承と親へのm2mリンクを指定したモデルの子からのクエリ

私のモデルの中には、ワークアウトへの m2m リンクがあるエクササイズがあります。ワークアウトの一種である WorkoutPlan と LogBook もあります。WorkoutPlan は、理想的なワークアウトが保存される場所です。LogBook は、ユーザーが実際に完了したワークアウトを保存する場所です。LogBook を WorkoutPlan にリンクして、実際のパフォーマンスが元の理想的な計画に関連付けられていることを示すこともできます。

特定のエクササイズについて、そのエクササイズが含まれるすべての WorkoutPlan を取得したいと考えています。

ワークアウトのリストには WorkoutPlans と LogBooks の両方が含まれていることに気付きました。これは、エクササイズが WorkoutPlans や LogBooks ではなく、Workout に関連付けられているためです。

WorkoutPlans のみに関連するワークアウトを取得するにはどうすればよいですか?