問題タブ [django-models]
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 ベースのアプリケーション用に、一種の構成レジストリをプログラムする必要があります。
要件:
- 最も可能性が高い
param_name
:param_value
構造 - 管理インターフェースから編集可能
- syncdb で動作する必要があります。他のアプリが構成モデルに依存し、モデル自体がまだ DB で初期化されていない状況に対処するにはどうすればよいですか? 設定可能なモデル フィールドのプロパティ、つまりデフォルト値の設定が必要だとしましょう。
アイデアや提案をいただければ幸いです。
django - 別のモデルのクエリセットを二分するクエリセット
いくつかのゾーンを持つユーザー主導のアプリを作成しています。ユーザーがメッセージ設定をカスタマイズできるようにして、関心のある部分やアクションについてのみメールを受信できるようにしたいと考えています。私は以下を作成しましたClass
:
get_users(key, default)
これは、ユーザーのリストを返すと呼ばれるメソッドによって使用されます。たとえば、 に登録されているユーザーkey="new_post", default=False
のリストを要求した場合、そのキーの値が True の EmailSetting を持つユーザーのリストを取得する必要があります。EmailSetting モデルを使用するだけなので、これは非常に簡単です。
デフォルトが True の場合、物事は難しく見えます。モデルを使った基本的なルックアップよりも複雑なことはしたことがないので、手を貸す必要があります。
ユーザーの完全なリストから、False EmailSetting を持つユーザーを削除する必要があります。False エントリを探して EmailSetting で別のクエリを実行し、それらを最初のクエリセットから繰り返し切り取る以外は、これを行う方法がわかりません...
…でも、それは臭いから別の方法があるに違いない。
django - 更新フィールドまたは COUNT クエリを使用する方が「良い」ですか?
私が取り組んでいるDjangoアプリでは、これが起こっています:
avg_child_ratingに頻繁にアクセスする予定 です。次のことを行った場合、最適化されますか?
現在の違いは、子が作成/評価/削除されるたびに、親オブジェクトが更新されることです。作成/評価が頻繁に行われることを知っています。
より高価なものは何ですか?
django - Djangoでnullを許可する一意のフィールド
フィールドバーのあるモデルFooがあります。バーフィールドは一意である必要がありますが、nullを許可します。つまり、バーフィールドがnull
である場合は複数のレコードを許可しますが、そうでない場合null
は値が一意である必要があります。
これが私のモデルです:
そして、これがテーブルに対応するSQLです。
管理インターフェースを使用して、barがnullである複数のfooオブジェクトを作成すると、「Foo withthisBarはすでに存在します」というエラーが表示されます。
ただし、データベース(PostgreSQL)に挿入すると:
これは問題なく機能します。barがnullの状態で複数のレコードを挿入できるので、データベースでやりたいことができます。Djangoモデルに問題があります。何か案は?
編集
DBが問題にならない限り、ソリューションの移植性はPostgresに満足しています。呼び出し可能オブジェクトに固有の設定を試みました。これは、barの特定の値に対してTrue / Falseを返す関数でしたが、エラーは発生しませんでしたが、まったく効果がないように継ぎ目がありました。
これまで、barプロパティから一意の指定子を削除し、アプリケーションでバーの一意性を処理しましたが、それでもよりエレガントなソリューションを探しています。何かお勧めはありますか?
python - 一度保存した後にモデルインスタンスを読み取り専用にする方法は?
私が書いている Django プロジェクトの機能の 1 つは、ニュースレターの送信です。の信号をリッスンするために登録したモデルNewsletter
と関数があります。ニュースレター オブジェクトが管理インターフェイス経由で保存されると、が True かどうかをチェックし、はいの場合は実際にメールを送信します。send_newsletter
Newsletter
post_save
send_newsletter
created
ただし、明らかな理由から、既に送信されたニュースレターを編集することはあまり意味がありません。Newsletter
保存したオブジェクトを読み取り専用にする方法はありますか?
編集:
オブジェクトのメソッドをオーバーライドしsave
てエラーを発生させたり、オブジェクトが存在する場合は何もしないことがわかっています。しかし、私はそれをする意味がわかりません。前者に関しては、そのエラーをどこでキャッチするか、オブジェクトが保存されていないという事実をユーザーに伝える方法がわかりません。後者に関しては、ユーザーに誤ったフィードバック (保存が成功したことを示す管理者インターフェース) を与えることは良いことのようには思えません。
私が本当に望んでいるのは、ユーザーが管理インターフェイスを使用してニュースレターを作成して送信し、送信済みのニュースレターを閲覧できるようにすることです。「保存」ボタンを使用せずに、編集不可の入力ボックスに送信済みニュースレターのデータを表示する管理インターフェイスを希望します。または、「保存」ボタンを非アクティブにしたいと思います。
python - 他の誰かが変更したオブジェクトを上書きしないようにする方法
チェックアウト後にオブジェクトが保存された場合、オブジェクトを保存しないようにする一般的な方法を見つけたいと思います。
timestamp
オブジェクトには、最終変更時刻を含むフィールドがあると想定できます。でチェックアウト (たとえば、ModelForm を使用してビューにアクセス) しt1
、オブジェクトが で再度保存されたt2
場合、t2
>t1
保存できないはずです。
python - Djangoモデルでフィールドのタプルの一意性を指定する方法
同様のフィールドの「unique=True」属性と同様の方法で、テーブル内でフィールドのペアが一意になるようにDjangoでモデルを指定する方法はありますか?
または、clean()メソッドでこの制約を確認する必要がありますか?
python - djangoでグループ化
トランクバージョンのdjangoでクエリによって単純なグループを作成するにはどうすればよいですか?
私はのようなものが必要です
実際に私がやりたいのは、異なる名前のすべてのエントリを取得することです。
python - オブジェクト全体を要求せずに外部キーを取得する
User モデルへの ForeignKey を持つモデル Foo があります。
後で、すべてのユーザーの ID を取得してリストに追加する必要があります
しかし、私がそうすると、django は、各 Foo 行に存在する数値ユーザー ID だけを提供する代わりに、DB から User インスタンス全体を取得します。
各ユーザーにクエリを実行したり、select_related を使用したりせずに、すべての ID を取得するにはどうすればよいですか?
ありがとう