Как изящно обработать исключение DoesNotExist, когда пользователь admin не найден?

У меня есть поле created_by в моей модели, которое по умолчанию используется для пользователя admin при создании объекта. Я получаю пользователя admin, используя этот фрагмент кода,

admin_user_name = settings.ADMIN_USER_NAME
admin = User.objects.get(username=admin_user_name)

Теперь, если мне нужно обработать исключение object.DoesNotExist, как

try:
   admin_user_name = settings.ADMIN_USER_NAME
   admin = User.objects.get(username=admin_user_name)
except User.DoesNotExist:
    # handle the exception gracefully

Как обработать исключение без выброса ошибки в таком случае?

Обновление: Поле created_by становится доступным путем наследования

class AbstractUserBase(models.Model):
    created_by = models.ForeignKey(User,related_name='%(class)s_createdby',on_delete=models.CASCADE)

    class Meta:
        abstract = True

Не используйте get. Используйте ....objects.filter() и count() для получения результата.

Другим способом было бы использование ....objects.exists(XYZ), прежде чем получить его с помощью get.

Вернуться на верх