[解決済み] Django はクエリに存在するかどうかをチェックします。
2022-12-23 03:11:15
質問
django では、クエリに対してエントリが存在するかどうかを確認する方法は?
sc=scorm.objects.filter(Header__id=qp.id)
phpではこんな感じでした。
if(mysql_num_rows($resultn)) {
// True condition
}
else {
// False condition
}
どのように解決するのですか?
あなたは
exists()
:
if scorm.objects.filter(Header__id=qp.id).exists():
....
リターン
True
は、QuerySet が何らかの結果を含んでいる場合、そしてFalse
となります。これはクエリを実行しようとするものです を最もシンプルで高速な方法で実行しようとします。 しかし、これは通常の QuerySet クエリとほぼ同じクエリを実行します。
古いバージョンです。 (<1.2)
使用方法
count()
:
sc=scorm.objects.filter(Header__id=qp.id)
if sc.count() > 0:
...
に対する利点は、例えば
len()
の利点は、QuerySet がまだ評価されていないことです。
count()
が実行されます。SELECT COUNT(*)
を実行するので、常にcount()
を使うべきで、むしろ全てのレコードを Python オブジェクトにロードしてlen()
を呼び出すのではありません。
このことを念頭に置きながら クエリセットが評価されるとき は一読の価値があります。
もし、あなたが
get()
を使用すると、例えば
scorm.objects.get(pk=someid)
で、そのオブジェクトが存在しない場合は
ObjectDoesNotExist
例外が発生します。
from django.core.exceptions import ObjectDoesNotExist
try:
sc = scorm.objects.get(pk=someid)
except ObjectDoesNotExist:
print ...
関連
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] リストが空かどうかを確認するにはどうすればよいですか?
-
[解決済み] 与えられたキーがすでに辞書に存在するかどうかをチェックする
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み] Django のモデルで on_delete は何をするのですか?
-
[解決済み】forループを使った辞書の反復処理
-
[解決済み] 前月の日時オブジェクトを返す
-
[解決済み] Django で全てのリクエストヘッダを取得するにはどうすれば良いですか?
-
[解決済み] Django filter queryset __in for *every* item in list
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pythonです。未束縛のメソッドを束縛する?
-
[解決済み] Djangoで2つの日付の間を選択する
-
[解決済み] Pandasの'Freq'タグにはどのような値が有効ですか?
-
[解決済み] ファブリック経由でデプロイユーザとしてvirtualenvを有効化する
-
[解決済み] Pythonでマルチプロセッシングキューを使うには?
-
[解決済み] Cythonのコードを含むPythonパッケージはどのように構成すればよいのでしょうか?
-
[解決済み] Flaskで非同期タスクを作る
-
[解決済み] Pandasのデータフレーム内の文字列を'date'データ型に変換するにはどうしたらいいですか?
-
[解決済み] Pythonで、ウェブサイトが404か200かを確認するためにurllibをどのように使用しますか?
-
[解決済み] PySparkでデータフレームのカラムをString型からDouble型に変更する方法は?