1. ホーム
  2. python

[解決済み] オブジェクトが存在するかどうかを確認する

2022-01-29 03:05:37

質問

を確認する必要があります。 Model.objects.filter(...) は、何も表示されませんが、何も挿入する必要はありません。私のコードは以下の通りです。

user_pass = log_in(request.POST)  # form class
if user_pass.is_valid():
    cleaned_info = user_pass.cleaned_data
    user_object = User.objects.filter(email = cleaned_info['username'])

解決方法は?

以来 filterQuerySet を使用することができます。 カウント を使えば、いくつの結果が返されたかを確認することができます。 これは、実際には結果を必要としないことを前提としています。

num_results = User.objects.filter(email = cleaned_info['username']).count()

しかし、ドキュメントを見たところ、結果を後で使用するつもりなら、フィルタの len を呼び出す方がよいでしょう。

count()呼び出しは裏でSELECT COUNT(*)を実行するので、すべてのレコードをPythonオブジェクトにロードして結果に対してlen()を呼び出すよりも、常にcount()を使うべきです(ただし、オブジェクトをメモリにロードする必要があり、その場合はlen()がより速くなる場合のみ)。

num_results = len(user_object)