Как изящно обработать исключение 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.