Django objects.get () - PullRequest
       1

Django objects.get ()

3 голосов
/ 22 марта 2010

Что делать, если нет ничего, что соответствует get? Затем возвращается с ошибкой.

Как мне сказать: получить, если есть, иначе ничего не вернуть.

Ответы [ 3 ]

7 голосов
/ 22 марта 2010

Вы можете создать ярлык, подобный этому (на основе get_object_or_404):

from django.shortcuts import _get_queryset

def get_object_or_none(klass, *args, **kwargs):
  queryset = _get_queryset(klass)
  try:
    return queryset.get(*args, **kwargs)
  except queryset.model.DoesNotExist:
    return None

Не уверен, почему этот ярлык не существует (возможно, кто-то с большим количеством django под поясом), так как этодовольно полезный ярлык, который я использую время от времени.

3 голосов
/ 22 марта 2010

Используйте try/except или get_object_or_404

2 голосов
/ 26 августа 2013

или вы можете попробовать раздражать Django

pip install django-annoying

затем импортировать get_object_or_None (класс, * args, ** kwargs)

from annoying.functions import get_object_or_None
get_object_or_None(User, email='test@test.com')

Вот проект репо на github

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...