Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 19.03.2017
Сообщений: 16

Работа с персональными данными пользователя в Django

16.05.2017, 22:55. Показов 3004. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Только начал изучать Django, возник вопрос. Как работать с данным, персональными для каждого пользователя. Допустим есть магазин, в нем пользователи, который могут сделать заказ, потом зайти и посмотреть, что заказано. Как получить из моделей данные только по пользователю под которым авторизовались (и как эти данные правильно организовать). Есть вариант назначать, допустим, на заказ внешний ключ с User к которому заказ принадлежит. При выборке в html можно получить данные через
Python
1
user_id= User.objects.get(username=request.user.username).id
и по id отбирать записи... Это вообще правильно? Думаю, есть более разумный вариант. Как это делается в крупных проектах?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.05.2017, 22:55
Ответы с готовыми решениями:

Работа с персональными данными
как внести данные в форму авторизации в локальном приложении (мне нужно выполнить вход под аккаунтом в облако mail или яндекс)? Как...

Работа с персональными данными. Архитектура проекта. Как реализовать
Здравствуйте, друзья! Очень нужна помощь. Я начинающий разработчик, делаю курсовую. Использую php 5.0, mysql и фреймворк yii 2.0.13 Это...

Создание класса с персональными данными жителей США
Ребята помогите мне плииииз! Очень нужно! Нужно выполнить вот такие задания, вообще не соображаю никак, что и как нужно делать... ...

4
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
18.05.2017, 10:11
request.user - это уже и есть объект пользователя. Запросы к другим таблицам делаются наподобе:
Python
1
books = Books.objects.filter(user=request.user)
Поставьте модуль django-debug-toolbar (как-то так называется), в нем можно посмотреть SQL-запросы к базе.
0
145 / 113 / 31
Регистрация: 12.06.2011
Сообщений: 1,246
19.05.2017, 20:54
Цитата Сообщение от destroyer_ Посмотреть сообщение
и по id отбирать записи... Это вообще правильно? Думаю, есть более разумный вариант. Как это делается в крупных проектах?
Тут имеет место many-to-one relationships.

Дока: https://docs.djangoproject.com... ny_to_one/

Один юзер - много заказанных предметов.

user=request.user
cart = list(user.goods_set.all()) # Принудителовка, дабы ничего ленивого не осталось.

Кстати, юзер обычно может купить товар и без авторизации. Сессия хранится не только для авторизованных юзеров.
Так что корзинку он соберет и без регистрации. Если это, конечно, программист продумал.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
20.05.2017, 04:59
Цитата Сообщение от Kifsif Посмотреть сообщение
user=request.user
cart = list(user.goods_set.all()) # Принудителовка, дабы ничего ленивого не осталось.
Вот не надо так делать. Запросы специально ленивые в движке сделаны.
Python
1
cart = request.user.goods_set.all()
Это обратная связь, но использовать её не везде удобно. Проще явно написать запрос. Выполнение запросов.
0
145 / 113 / 31
Регистрация: 12.06.2011
Сообщений: 1,246
20.05.2017, 09:51
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Вот не надо так делать. Запросы специально ленивые в движке сделаны.
Ленивость - это инструмент. Любым инструментом можно ногу себе отстрелить. Я прочитал задание и решил, что пора включить принудиловку. Потому что юзер (в моей голове) уже пошел смотреть заказ. Т.е. вот в мы сейчас кинем список в шаблон - и там уже в цикле все покажем юзеру. Т.е. никаких фильтров уже накинуто не будет. Вот так я понял задачу. Без полной картины говорить о том, что не надо так делать - это о чем?

Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Это обратная связь, но использовать её не везде удобно. Проще явно написать запрос.
Почему неудобно? Если ее неудобно использовать здесь, то когда же ее использовать удобно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.05.2017, 09:51
Помогаю со студенческими работами здесь

Сертификация программного обеспечения для работы с персональными данными.
Да даже форма обратной связи на сайте, где человека просят ввести, максимум своё имя, адрес, телефон или почту. Это уже персональные...

Программа, которая будет работать с персональными данными 5 сотрудников малого предприятия
Добрый вечер! Я изучать С++ начал, дошел до массивов и попалась задача вот такого содержания: "Программа, которая будет работать с...

Программа, которая будет работать с персональными данными 5 сотрудников малого предприятия
программа, которая будет работать с персональными данными 5 сотрудников малого предприятия. Программа должна для каждого сотрудника ...

Работа с данными пользователя
Доброе время суток. И так есть задача,- пользователь регистрируется – получает доступ к функционалу сайта (такой себе калькулятор данных...

Django. Заполнение новыго поля (в базе) данными из старого
Здравствуйте. В базе есть поле Название товаров, в котором уже много записей. Затем было добавлено новое поле, в котором должны...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru