Форум сайта python.su
Приветствую. Поступил небольшой вопрос при работе с базой данных в django. Есть база данных и из неё, я получаю объект. views.py
mail = request.POST.get('e_mail_log', False) User.objects.filter(e_mail=mail)
<QuerySet [<User: qwerty, 123@mail.ru, 1234>]>
Отредактировано MEOW (Ноя. 25, 2018 14:59:15)
Офлайн
все верно. ты получаешь QuerySet объект. Чтобы получить результат выполни к итерацию
mail = request.POST.get('e_mail_log', False) for x in User.objects.filter(e_mail=mail): print(x)
Офлайн
Не работает. Цикл работает один раз и выводит
qwerty, 123@mail.com, 1234
Офлайн
Не работает. Цикл работает один раз и выводит
qwerty, 123@mail.com, 1234
Офлайн
MEOWТак и будет тут подробнее про кэш.
Цикл работает один раз и выводит
Офлайн
Пробую метод values и получаю:
<QuerySet [{'id': 21, 'school_name': 'qwerty', 'user_name': 'qwerty', 'e_mail': '123@mail.ru', 'password': '1234'}]>
Офлайн
Почему когда я принтую type(mass), где mass это
User.objects.filter(e_mail=mail).values()
Отредактировано MEOW (Ноя. 25, 2018 18:10:48)
Офлайн
MEOWэто все верно. QuerySet в django является представлением некоторого числа строк в БД, опционально отфильтрованных посредством запроса.
очему когда я принтую type(mass), где mass это
то выводит: <class ‘django.db.models.query.QuerySet’>User.objects.filter(e_mail=mail).values()
User.objects.filter(e_mail=mail).values()
Офлайн
mass = (User.objects.filter(e_mail=mail).values()) mass = mass[0] mass = mass.values() print(list(mass)[1])
Офлайн
MEOWДокументацию нужно читать. Я же скинул ссылку на values(). Там в первых двух строках сказано, что возвращает словари, а не экземпляры модели, при использовании в качестве итерации
И всё таки непонятно, почему индекс 0 даёт преобразование из QuerySet в тип Dictionary
Офлайн