Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » дописать результаты выборки данными словаря [RSS Feed]

#1 Июнь 29, 2014 23:16:27

django2014
Зарегистрирован: 2014-06-29
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Доброй ночи!

Новичек в Django потому прошу направить меня в нужное русло.

Делаю выборку во вьюхе так:

t1list=T1.objects.filter( y_id__in = list_y)
context['t1list']=t1list
return context

в шаблоне эту выборку использую, причем одним из полем выборки является поле user_id ссылающееся на словарь. user_id возвращается верно, но мне нужны данные из словаря, в частности фамилия user_id.family.

Так вот, в шаблоне {{t1list.user_id}} правильно отображает номер юзера, а вот до фамилии не добраться {{t1list.user_id.family}}. Конечно, получилось в цикле делать выборки:
for t in t1list:
fam.append(User.objects.get(id=t.user_id))
но я думаю, это неэффективно.

Помогите получить данные из словаря без цикла. Спасибо!

Офлайн

#2 Июнь 29, 2014 23:25:31

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

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

django2014
сделай нормальное Fk и доставай через select_related тогда будет эфективно

 T1.objects.select_related("genre").all()

Отредактировано Singularity (Июнь 29, 2014 23:27:45)

Офлайн

#3 Июнь 29, 2014 23:38:16

django2014
Зарегистрирован: 2014-06-29
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Singularity
доставай через select_related тогда будет эфективно

что-то через select_related() мне не удалось это сделать,

я не представляю себе как выбрать из словаря select_related-ом
t1list=T1.objects.select_related('user.family').filter( y_id__in = list_y).values()


вот это я не понял
Singularity
django2014сделай нормальное Fk
выборка у меня правильная, просто нужно добавить дополнительные данные из словаря вместо id.

Отредактировано django2014 (Июнь 29, 2014 23:53:52)

Офлайн

#4 Июнь 29, 2014 23:52:49

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

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

django2014
выборка у меня правильная, просто нужно добавить дополнительные данные из словаря вместо id.
я тебе не розумію

Офлайн

#5 Июнь 30, 2014 00:00:02

django2014
Зарегистрирован: 2014-06-29
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Singularity

имеются таблицы:
mysql> select * from t1;
+------+------+
| x | y |
+------+------+
| 1 | 2 |
| 2 | 3 |
+------+------+

mysql> select * from t2;
+------+------+
| x | z |
+------+------+
| 1 | 4 |
| 3 | 5 |
+------+------+
для x есть словарь. мне нужно выбрать из t1 таблицы с некоторыми значениями y и при этом получить из таблицы t2 значения z записей, соответствующим выбранным значениям x.

Т.е. на SQL это так бы решалось
 SELECT t1.y,t2.z  FROM t1,t2 where t1.x=t2.x and t1.x=нужное_значение;

Офлайн

#6 Июнь 30, 2014 00:02:55

django2014
Зарегистрирован: 2014-06-29
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

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

django2014
да действительно, я не совсем точно написал.

поле x берется из словаря и в t1 и в t2.

в общем то t2 - есть дополнение к словарю (это профили пользователей)

и мне нужно дописать результаты выборки данными из другой таблицы.

Офлайн

  • Начало
  • » Django
  • » дописать результаты выборки данными словаря[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version