Стандартный способ сообщения об ошибке в python состоит в том, чтобы вызвать исключение и позволить вызывающему коду его обработать. Либо пусть NameError & amp; Ошибка типа продолжить вверх или перехватить их и вызвать исключение InvalidPassword, которое вы определяете.
Хотя из функции можно возвращать флаг успеха / неудачи или код ошибки, как вы это сделали, это не рекомендуется - вызывающий может легко забыть проверить возвращаемое значение и получить ошибки. потерял. Кроме того, вы возвращаете значение из установщика свойств - это бессмысленно в Python, поскольку присваивания не являются выражениями и не могут возвращать значение.
Вы также никогда не должны печатать сообщение для пользователя при обработке исключений - что если вы позже захотите использовать функцию или класс в программе с графическим интерфейсом? В этом случае вашему заявлению на печать будет некуда печатать. Регистрация ошибки в лог-файл (с использованием модуля журналирования Python) часто полезна для отладки.
Нет, вы не можете этого сделать. order_by
применяется на уровне базы данных, но база данных ничего не может знать о ваших пользовательских методах Python.
Вы можете использовать отдельные поля для упорядочивания:
Author.objects.order_by('first_name', 'last_name')
или сделать упорядочивание в Python :
sorted(Author.objects.all(), key=lambda a: a.full_name)