Найти - Пользователи
Полная версия: дописать результаты выборки данными словаря
Начало » Django » дописать результаты выборки данными словаря
1
django2014
Доброй ночи!

Новичек в 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))
но я думаю, это неэффективно.

Помогите получить данные из словаря без цикла. Спасибо!
Singularity
django2014
сделай нормальное Fk и доставай через select_related тогда будет эфективно
 T1.objects.select_related("genre").all()
django2014
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.
Singularity
django2014
выборка у меня правильная, просто нужно добавить дополнительные данные из словаря вместо id.
я тебе не розумію
django2014
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=нужное_значение;
django2014
django2014
да действительно, я не совсем точно написал.

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

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

и мне нужно дописать результаты выборки данными из другой таблицы.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB