Как проверить пустую строку из базы данных в Django? - PullRequest
1 голос
/ 14 января 2010

Я испытываю затруднения, пытаясь проверить, существует ли запись в базе данных для идентификатора черепа в django.

something = User.objects.get(id=myID)
if something is None:
     text="No Record"

Мне нужно сделать что-то подобное.

Ответы [ 3 ]

2 голосов
/ 14 января 2010

Начиная с версии 11646 (3 месяца назад) в django есть специальная функция для этого (см. Тикет 11402 ):

if not User.objects.filter(id=myID).exists():
    text = "No Record"

Это более эффективно, поскольку оно генерирует SQL-оператор EXISTS вместо заполнения объекта python.

1 голос
/ 14 января 2010
if not User.objects.filter(id=myID):
    text = "No Record"
0 голосов
/ 14 января 2010

Вы можете использовать решение Энтони Хэтчкинса или:

try:
    something = User.objects.get(id=myID)
except User.DoesNotExist:
     text="No Record"

РЕДАКТИРОВАТЬ: Существует ярлык , что очень удобно:

from django.shortcuts import get_object_or_404

def my_view(request):
    my_object = get_object_or_404(MyModel, pk=1)

Этот пример эквивалентен:

from django.http import Http404

def my_view(request):
    try:
        my_object = MyModel.objects.get(pk=1)
    except MyModel.DoesNotExist:
        raise Http404
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...