問題タブ [model-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.
python - サブクラスのインスタンスがある場合、モデルを照会するにはどうすればよいですか?
A と B の 2 つの単純なモデルがあります。
では、B のインスタンスを持たない A のすべてのインスタンスを照会するにはどうすればよいでしょうか?
私が見つけた唯一の方法は、各サブクラスに NOT NULL である明示的に一意のフィールドを必要とするため、たとえば A.objects.filter(b__this_is_a_b=None) を実行して、B インスタンスでもないインスタンスを取得できます。そのような明示的なばかげたフラグを追加せずにこれを行う方法を探しています。
また、すべてのオブジェクトに対してクエリを実行してから、Python でそれらをフィルター処理したくもありません。DBにそれをさせたいのですが、これは基本的に次のようなものですSELECT * FROM A WHERE A.id in (SELECT id from B)
python - Django の ORM を使用したモデル継承アプローチ
浮気しているWebアプリケーションにイベントを保存したいのですが、継承を広範囲に使用するか、より控えめな方法で使用するか、それぞれのアプローチの長所と短所についてかなり確信が持てません。
例:
狂ったようにデータベース テーブルを作成しているように感じます。物事を選択するには多くの結合が必要になり、クエリが複雑になる可能性があります。でもデザインはいい感じだと思います。
より多くのフィールドを持つ「よりフラットな」モデルを使用する方が合理的でしょうか?
これについてのコメントをありがとう、誰でも。
フィリップ
django - 継承されたモデルに関連付けられた ModelForm の初期フィールド値の指定
質問: モデルの継承を使用し、レンダリング時に子モデルごとに異なるデフォルト値が必要な場合、フィールドの初期値を指定する推奨される方法は何ModelForm
ですか?
としてレンダリングするときにCompileCommand
との両方が異なる初期値を必要とする次のモデルを例にとります。TestCommand
ModelForm
フォームをインスタンス化するときに引数を使用できることは承知してinitial={...}
いますが、モデルのコンテキスト内 (または少なくとも関連付けられた ModelForm 内) に初期値を格納することをお勧めします。
私の現在のアプローチ
私が現在行っているのは、初期値の dict を に格納Meta
し、ビューでそれをチェックすることです。
これはハックのように感じます。これを達成するためのより一般的/より良い方法を切望しています。提案をいただければ幸いです。
更新されたソリューション(有望に見えます)
ビューに余分な定型コードを必要とせずforms.py
に設定できるようになりました。ユーザーが引数Meta.default_initial_values
を指定しない場合、デフォルト値が使用されます。initial={...}
python - Django の継承
ご覧ください:
そこで「CookRecette」と「NewsPaper」を「Article」として作成しました。(manyToMany)「Article」にリンクする「Category」クラスも作成します。
しかし、管理画面で「Category」から「CookRecette」や「NewsPaper」にリンクできません。コードから同じ。助けはありますか?
乾杯、
マーティン・マガキアン
PS: 申し訳ありませんが、実際にはこのコードは正しいです! 「Category」から「CookRecette」または「NewsPaper」を見ることができます。
django - 子モデルで get_absolute_url を継承する際の問題
私は次のモデルのセットを持っています(わかりやすくするために省略しています):
最初のセット:
これは次の子です:
2セット目
これは次の子です:
これは次の子です:
「ResourceOrganization」モデルは get_absolute_url メソッドを適切にオーバーライドし、「categories」ジェネリック リレーションを追加しています。
「Web」モデルはそうではありません。
私はその理由を理解するのに途方に暮れています。洞察をいただければ幸いです。
PS この機能を実装するためのより良い方法があったかもしれないことを認識していますが、リファクタリングが可能になり、機能させたいと思うまで、しばらくの間それを使い続けています。
ありがとう。
django - Django:子の保存に失敗したときの孤立した親インスタンス
次のようなコンテンツモデルから継承するPhotoクラスがあります。
ご覧のとおり、コンテンツ自体は抽象的ではありません。ModelFormで、写真をアップロードしています。ただし、何らかの理由で写真の保存に失敗した場合は、孤立したContentインスタンスが残ります。親モデルのインスタンスは、Photoインスタンスが保存される前に作成されていると思いますが、写真が失敗した場合、親はクリーンアップされません。
これはDjango側のバグですか?どうすればこれを防ぐことができますか?
ruby-on-rails - ユーザー作成リーグテーブルのRailsモデル構造
複数のユーザーが独自のテーブルを作成し、それらのテーブルにフィールドと「出場者」を入力できるアプリケーションを構築しようとしています。
Railsチュートリアル( http://ruby.railstutorial.org/ruby-on-rails-tutorial-book )に従って行った作業に便乗しようとしているので、そこで作成されたユーザーモデルを使用しています。
私の現在の考えは、次のレイアウトを持つことです:
ただし、フィールドの数を手動で入力する (そして制限する必要がある) のは面倒なようで、より少ないフィールドでテーブルを作成したいユーザーをどのように考慮すればよいかよくわかりません。
また、フィールド値のタイトル (および型) での競技者モデルの継承についてはわかりません。つまり、フィールドが int になりたい場合や、文字列になりたい場合があります。
私はこれを正しい方法で行っていますか、それとも私が利用していないより良い構造や Ruby/Railism がありますか?
django - save(update_fields = […]) の使用時に auto_now を適用する
モデル定義:
オブジェクトでは、フィールドのみを更新し、関連付けられたオブジェクトで定義されているものを除いて、他のすべてのフィールドを変更しないでStuff
おきたいと思います。name
Footprint
Footprint
使用しない場合、オブジェクトのフィールドは正しく更新されupdate_fields
ます。
しかし、更新するフィールドを指定すると、関連付けられたFootprint
ものも保存されません。
update_fields
複数のスクリプト間の干渉を避けるために使用する必要があります。
同時に、「フットプリント」オブジェクトによって定義された最後の変更を常に追跡したいと思います (これには、最後の変更日と他のいくつかのフィールドが含まれます。それらの更新はカスタムsave()
メソッドによってトリガーされます)。
からのフィールドが含まれていないFootprint.save()
場合でも、強制的に呼び出しを行う方法はありますか?update_fields
Footprint
django - 同じ構造化データベースの Django モデル
同じデータベース スキーマの異なるデータ データベースがあり (これも 1 つのデータベース: 同じ構造/スキーマの異なるテーブル)、それらのデータベースを他のすべてのアプリでデータ バックエンドとして使用したいと考えています。
たとえば、データベース名: database1
データベース名: database2
ここでは、database1 と database2 が同じスキーマを持っていることがわかります。また、両方のデータベースで、同じスキーマを持つテーブル: tableB と tableC があります。つまり、すべての地域で 1 つの大きなデータベースを使用するのではなく、地域ごとに同じ構造の個別のデータベースが作成されます。1 つのデータベースには約 15 個のテーブルがあり、15 個のうち 12 個のテーブルが同じスキーマにあり、毎日のデータが格納されています。
djangoでこれをどのように設計すればよいか教えてください。複数のモデル ファイル (データベースごとに 1 つ) を含む 1 つのアプリを作成し、ルーターを使用して別のデータベースに転送する必要がありますか? どのように?または、データベースごとに異なるアプリを作成しますか? どちらの場合も、すべてのモデル ファイルが同じ構造を持つため、多くのコードの冗長性があることがわかります。