3

What if there is nothing that matches the get? Then it returns in an error.

How do I say: get if there is, otherwise, return nothing.

0

3 Answers 3

7

You could create a shortcut like this (based on 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

Not sure why this shortcut doesn't exist (perhaps someone with more django under their belt can explain) as it is a reasonably useful shortcut that I use from time to time.

Sign up to request clarification or add additional context in comments.

Comments

3

Use try/except or get_object_or_404

Comments

2

or you can try django annoying

pip install django-annoying

then import get_object_or_None(klass, *args, **kwargs)

from annoying.functions import get_object_or_None
get_object_or_None(User, email='[email protected]')

Here is the project repo on github

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.