#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)
.