問題タブ [generic-foreign-key]
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 - django汎用外部キーオブジェクトの追加/編集
モデル デバイス:
モデルの属性値:
モデル属性:
デバイスの編集 (追加) ページでは、属性を作成または選択してから、属性値 (数値、長いテキスト値、短いテキスト値、またはファイル) を作成 (または編集/削除) できる必要があります。この属性、および現在の (または新しい) デバイスに関連付けられています。この種のシナリオでは、どのように django フォームセットを作成しますか?
python - Django - forms.py の一般的な外部キーまたはクエリ?
私のグーグルから、それが私が探していた解決策であるように思われたので、ContentType/Generic Foreign Key を使用して、今日の大部分のモデルをつなぎ合わせてきました。しかし、何かをレンダリングするようになったので、そうではないようです。
私が欲しいのは、ユーザーが One of Two モデルからレコードを選択できるようにする外部キー ドロップダウンだけです。GenericForeignKey を使用すると、'limit' ステートメントで指定されたモデルが一覧表示されますが、ユーザーは ID/PK を知っており、それを 'object_id' フィールドに入力する必要があります。これは正しいです?
私は現在、両方のモデルからすべてのレコードを取得してドロップダウンにリストするクエリが、よりクリーンなソリューションになると考えています。もしそうなら、forms.pyでこれを達成できますか?
関連する 2 つのモデルからいくつかのフィールドをインポート/操作して新しいモデルに保存するだけでよいため、外部キー要素はそれほど重要ではありません。
前もって感謝します。
django - Django Admin: GenericForeignKey を使用した「名前を付けて保存」の整合性エラー
私が持っているもの:
a) タグを格納する単純なクラス:
b) 任意のクラスに逆方向を追加する mixin:
c) そして、Mixin から継承する Data と呼ばれるクラス。admin では、このクラスは Tag に GenericTabularInline を使用して Data のタグを表示します。また、管理ページに「名前を付けて保存」ボタンを表示するために、「save_as」を True に設定します。
何が起こるか: 少なくとも 1 つのタグを持つデータ オブジェクトの [名前を付けて保存] をクリックすると、次のメッセージが表示されます: Integrity Error (1048, "Column 'content_type_id' cannot be null")
私には、「名前を付けて保存」を行うときに、Django Admin が GenericForeignKeys を適切に処理していないようです。それを実行する方法はありますか?問題を回避する方法はありますか? それとも、ここで何か間違ったことをしている可能性がありますか?
おそらく追加する必要がありますが、ここでは Django 1.7.7 を使用しています。
編集: 1.8.2 にアップグレードしましたが、問題は解決しません。何か案は?
django - さまざまなビジネス レベルで類似/同じオブジェクトを処理するためのデータベース構造
シナリオ
Combo
有名なタコス店が、モデル、ComboItem
、Ingredient
、およびを使用して Django アプリを構築したいと考えていOrder
ます。
- 本社は、同梱アイテムでさまざまなコンボを作成し、元のアイテムの成分と価格をレイアウトしたいと考えています。
- その後、各フランチャイズは、メニューで販売するコンボを選択でき、ストアのコンボアイテムの価格と材料を調整できます.
- 注文が入ると、コンボとアイテムの詳細がログに表示され、HQがコンボの名前を変更したり、フランチャイズが価格/成分を変更したりしても、将来変更されるべきではありません.
使用事例
HQは「ホットタココンボ」を作成します。関連する 3 つのコンボ アイテムがあります。
- タコス (価格: 99 ドル、材料: シェル、ビーフ、チーズ、ホットソース)
- チュロススパイラル (価格: $.79)
- ドリンク (価格: $1.29)
ニューヨークのフランチャイズは、メニューにホット タコス コンボを追加します。タコスの価格を $1.49 に調整し、タコスにレタスを追加します。
顧客は、タコスにチーズをのせずにコンボを注文します。
HQ はコンボの名前を Fiery Taco Combo に変更します - NY のコンボ名は更新されますが、タコスは同じカスタム価格のままで、まだレタスが含まれています。
NY フランチャイズのマネージャーがすべての注文を確認し、Hot Taco Comboの 1 つの注文を確認します。タコスの材料はシェル、肉、レタスのみです。
問題
Combo
aは基本的に 3 つのレベルすべてで同じオブジェクトですが、関連するオブジェクトは異なる可能性があるため、これを処理する最善の方法を決定するのに苦労していComboItem
ます。HQ は、名前などのコンボ属性を更新できる必要があり、すべてのフランチャイズ コンボ名を更新しますが、コンボ アイテムのカスタマイズはそのままにしておく必要があります。さらに、正確な注文記録のために、販売時点でのコンボの詳細とカスタマイズは、一度記録すると決して変更されるべきではありません。
AbstractBaseClass
本来は、関連するモデルやオブジェクトをそれぞれのビジネスレベルで継承する for eachを考えていたのですが、その構造は冗長で保守が難しいと感じました。
次にGenericForeignKey
、コンボを HQ、フランチャイズ、またはオーダーのいずれかに関連付け、必要に応じてオブジェクトを複製して、レベルを下げようと考えました。これは奇妙でエラーが発生しやすいと感じます。
誰かがこのようなケースに対処したことがありますか、または何か推奨事項はありますか? それは複雑な問題であり、複雑な解決策が必要なだけの問題ですか、それとも私が見逃している単純なアプローチがありますか? 前もって感謝します。
python - 一般的な外部キーdjangoの管理者検索
一般的な外部キーが存在するモデルに管理者検索を配置しようとしています。
admin.py
を使って検索できますobject_id
。object_id
しかし、そのオブジェクトのフィールドを使用して検索したい。
元。ユーザーはモデルへの外部キーを持っています。username
次に、 、first_name
、email
およびを使用して、そのユーザーのプライバシー設定を検索しますlast_name
。
前もって感謝します。
python - Djangoは、独自のメソッドの1つからオブジェクトを削除します
私はモデルを持っています:
外部キーが削除されると壊れるので、壊れるのではなく、必要な外部キーが削除されたときにそれをキャッチしています。これが発生した場合、MyModel のこのインスタンス全体を削除して続行するにはどうすればよいでしょうか。
django - Django汎用外部キー:汎用外部キーを使用して一連のオブジェクトのすべてのコンテンツ オブジェクトを取得するにはどうすればよいですか?
こんにちは、一般的な外部キーを使用して他のいくつかのモデルにアタッチするモデルがあります。これらすべてのコンテンツ オブジェクトを 1 回のクエリで取得したいと考えています。
すべてのコンテンツ タイプ ID とオブジェクト ID を含むデータ構造を作成しました。コンテンツ タイプ ID とオブジェクト ID を使用してコンテンツ オブジェクトの一括セットを取得するにはどうすればよいですか? これらのコンテンツ オブジェクトごとにクエリを実行する代わりに、1 つのクエリですべてを取得できますか?
python - 汎用モデルの django ユーザー オプションを設定する方法
カスタム ユーザー データの Profile モデルがあります。
モデルがユーザーに通知と電子メールを送信できるようにする通知アプリもあります。
ユーザーにはさまざまな通知をオンまたはオフにするオプションが必要ですが、次のようにブール値フィールドの膨大なリストをプロファイルに追加したくありません。
ここで、modelx は通知の発信元であるモデルまたはその他のアプリであり、noticex/emailx は通知の特定の原因です。
これを行うためのより持続可能な方法は、外部モデルが独自の通知設定を定義するために使用できる ProfileOptions モデルを作成することだと考えていました。
このようにして、新しいアプリ/モデルを追加するときに、その通知ソースを何らかの方法で ProfileOptions モデルにリンクし、それらをオンまたはオフにするこれらのオプションを魔法のようにユーザーのプロファイルに表示することができます。
これは理にかなっていますか?もしそうなら、それは可能ですか?もしそうなら、それは良い考えですか?その場合、モデル、ProfileOptions、およびユーザーのプロファイルを接続するには、どのような構造を使用する必要がありますか?
明らかに、最後の質問への回答を望んでいますが、他の質問への回答が「いいえ」である可能性を排除したくありません。
django - Django GenericForeignKey を使用して基本的な通知を保存する
私は Django をかなり使用しており、モデルにはかなり精通しています。ただし、GenericForeignKey および ContentTypes フレームワークに出くわしたばかりです。
これらを使用して、他のいくつかのモデルを参照する基本的な通知を保存する予定です。
たとえば、次のモデルがあります
1 人のユーザーによるこれらのアクションのそれぞれで、関係する他のユーザーが通知を受け取ります。Node サーバーと socket.io を使用して、これらのリアルタイムの側面を完成させました。ただし、現時点でオンラインでないユーザーに対してこれと同じ動作を実現するために、上記の汎用外部キーと ContentTypes に出会いました。
ここでの私の質問は、ドキュメントがこれについてあまり明確ではなかったため、これら2つの機能を使用してユーザーアクティビティを保存する方法を知りたいですか?