Вчера мы создали функцию которая принимала в качестве аргумента имя пользователя и обращалась к пользоветелю с текстовым шаблонном.
Сегодня я хотел бы показать как получить конретного пользователя в Django.
А так же написать различие между
objects.get()
objects.filter()
Когда в базе данных имеется множество пользователей а нам нужно чтобы наша программа находила конкретного пользователя по номеру телефона (учитывая что номер телефона для пользователя значение уникальное, т.е. один телефонный номер не может быть более чем у одного пользователя).
Так вот сразу отмечу что для нахождения одного пользователя используется
.get()
Теперь создадим функцию, которая в качестве аргумента будет принимать номер телефона, и возвращать объект т.е. нашего пользователя.
def get_user(phone_number):
try:
user = User.objects.get(phone_number=phone_number)
except:
user = None
return user
Сдесь так же учитвается что в модели User определено поле phone_number.
Блок try/except используется для исключения ошибки в програмном коде, если пользователя с таким номером нет, будет выведено исключение и переменной user будет присвоено значение None.
Внимание! Если необходимо найти несколько пользователей, например по полу используем:
objects.filter(gender='male')
#python #django
#ORM #development
#SQL #models