問題タブ [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.

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

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)

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

python - Django の ORM を使用したモデル継承アプローチ

浮気しているWebアプリケーションにイベントを保存したいのですが、継承を広範囲に使用するか、より控えめな方法で使用するか、それぞれのアプローチの長所と短所についてかなり確信が持てません。

例:

狂ったようにデータベース テーブルを作成しているように感じます。物事を選択するには多くの結合が必要になり、クエリが複雑になる可能性があります。でもデザインはいい感じだと思います。

より多くのフィールドを持つ「よりフラットな」モデルを使用する方が合理的でしょうか?

これについてのコメントをありがとう、誰でも。

フィリップ

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

django - 継承されたモデルに関連付けられた ModelForm の初期フィールド値の指定

質問: モデルの継承を使用し、レンダリング時に子モデルごとに異なるデフォルト値が必要な場合、フィールドの初期値を指定する推奨される方法は何ModelFormですか?

としてレンダリングするときにCompileCommandとの両方が異なる初期値を必要とする次のモデルを例にとります。TestCommandModelForm

フォームをインスタンス化するときに引数を使用できることは承知してinitial={...}いますが、モデルのコンテキスト内 (または少なくとも関連付けられた ModelForm 内) に初期値を格納することをお勧めします。

私の現在のアプローチ

私が現在行っているのは、初期値の dict を に格納Metaし、ビューでそれをチェックすることです。

これはハックのように感じます。これを達成するためのより一般的/より良い方法を切望しています。提案をいただければ幸いです。

更新されたソリューション(有望に見えます)

ビューに余分な定型コードを必要とせずforms.pyに設定できるようになりました。ユーザーが引数Meta.default_initial_valuesを指定しない場合、デフォルト値が使用されます。initial={...}

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

python - Django の継承

ご覧ください:

そこで「CookRecette」と「NewsPaper」を「Article」として作成しました。(manyToMany)「Article」にリンクする「Category」クラスも作成します。

しかし、管理画面で「Category」から「CookRecette」や「​​NewsPaper」にリンクできません。コードから同じ。助けはありますか?

乾杯、
マーティン・マガキアン

PS: 申し訳ありませんが、実際にはこのコードは正しいです! 「Category」から「CookRecette」または「NewsPaper」を見ることができます。

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

django - 子モデルで get_absolute_url を継承する際の問題

私は次のモデルのセットを持っています(わかりやすくするために省略しています):

最初のセット:

これは次の子です:

2セット目

これは次の子です:

これは次の子です:

「ResourceOrganization」モデルは get_absolute_url メソッドを適切にオーバーライドし、「categories」ジェネリック リレーションを追加しています。

「Web」モデルはそうではありません。

私はその理由を理解するのに途方に暮れています。洞察をいただければ幸いです。

PS この機能を実装するためのより良い方法があったかもしれないことを認識していますが、リファクタリングが可能になり、機能させたいと思うまで、しばらくの間それを使い続けています。

ありがとう。

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

django - Django:子の保存に失敗したときの孤立した親インスタンス

次のようなコンテンツモデルから継承するPhotoクラスがあります。

ご覧のとおり、コンテンツ自体は抽象的ではありません。ModelFormで、写真をアップロードしています。ただし、何らかの理由で写真の保存に失敗した場合は、孤立したContentインスタンスが残ります。親モデルのインスタンスは、Photoインスタンスが保存される前に作成されていると思いますが、写真が失敗した場合、親はクリーンアップされません。

これはDjango側のバグですか?どうすればこれを防ぐことができますか?

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

ruby-on-rails - ユーザー作成リーグテーブルのRailsモデル構造

複数のユーザーが独自のテーブルを作成し、それらのテーブルにフィールドと「出場者」を入力できるアプリケーションを構築しようとしています。

Railsチュートリアル( http://ruby.railstutorial.org/ruby-on-rails-tutorial-book )に従って行った作業に便乗しようとしているので、そこで作成されたユーザーモデルを使用しています。

私の現在の考えは、次のレイアウトを持つことです:

ただし、フィールドの数を手動で入力する (そして制限する必要がある) のは面倒なようで、より少ないフィールドでテーブルを作成したいユーザーをどのように考慮すればよいかよくわかりません。

また、フィールド値のタイトル (および型) での競技者モデルの継承についてはわかりません。つまり、フィールドが int になりたい場合や、文字列になりたい場合があります。

私はこれを正しい方法で行っていますか、それとも私が利用していないより良い構造や Ruby/Railism がありますか?

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

django - save(update_fields = […]) の使用時に auto_now を適用する

モデル定義:

オブジェクトでは、フィールドのみを更新し、関連付けられたオブジェクトで定義されているものを除いて、他のすべてのフィールドを変更しないでStuffおきたいと思います。nameFootprint

Footprint使用しない場合、オブジェクトのフィールドは正しく更新されupdate_fieldsます。

しかし、更新するフィールドを指定すると、関連付けられたFootprintものも保存されません。

update_fields複数のスクリプト間の干渉を避けるために使用する必要があります。

同時に、「フットプリント」オブジェクトによって定義された最後の変更を常に追跡したいと思います (これには、最後の変更日と他のいくつかのフィールドが含まれます。それらの更新はカスタムsave()メソッドによってトリガーされます)。

からのフィールドが含まれていないFootprint.save()場合でも、強制的に呼び出しを行う方法はありますか?update_fieldsFootprint

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

django - 同じ構造化データベースの Django モデル

同じデータベース スキーマの異なるデータ データベースがあり (これも 1 つのデータベース: 同じ構造/スキーマの異なるテーブル)、それらのデータベースを他のすべてのアプリでデータ バックエンドとして使用したいと考えています。

たとえば、データベース名: database1

データベース名: database2

ここでは、database1 と database2 が同じスキーマを持っていることがわかります。また、両方のデータベースで、同じスキーマを持つテーブル: tableB と tableC があります。つまり、すべての地域で 1 つの大きなデータベースを使用するのではなく、地域ごとに同じ構造の個別のデータベースが作成されます。1 つのデータベースには約 15 個のテーブルがあり、15 個のうち 12 個のテーブルが同じスキーマにあり、毎日のデータが格納されています。

djangoでこれをどのように設計すればよいか教えてください。複数のモデル ファイル (データベースごとに 1 つ) を含む 1 つのアプリを作成し、ルーターを使用して別のデータベースに転送する必要がありますか? どのように?または、データベースごとに異なるアプリを作成しますか? どちらの場合も、すべてのモデル ファイルが同じ構造を持つため、多くのコードの冗長性があることがわかります。