Как проверить, доступны данные или нет в таблице с помощью запроса django?

#django #python-3.x

#django #python-3.x

Вопрос:

У нас есть одна таблица, и с помощью запроса django orm мы должны проверить, доступны данные или нет в таблице. Итак, мой вопрос заключается в использовании запроса orm и условий if, else, которые мы должны показать.

Ответ №1:

Есть два способа проверки. 1). filter() 2). get()

 user = User.objects.filter(pk/user_id = "12345")
  

Он выдаст вам список пользователей, если пользователь не существует, это будет пустой список.

 user = User.objects.get(pk = "12345")
  

Он выдаст объект, если пользователь существует, если не существует, то он выдаст вам ошибку «Объект не существует».
Если вы используете filter, вы можете просто проверить

 try:
   if not user:
        return
except Exception, e:
    raise or something return
  

Если вы используете get, если пользователь не существует, то это автоматически вызовет исключение «Объект не существует»

Ответ №2:

Лучший способ — использовать exists():

 YourModel.objects.all().exists()  # returns a boolean value

# or

YourModel.objects.filter(some_key=some_value).exists()

# Usage
if queryset.exists():
    # do something
  

Но если вы знаете, что набор запросов будет оценен в какой-то момент, то использование exists() увеличит общую работу. В таком случае его лучше использовать bool(queryset) .