Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 9, 2012 11:20:34

SorrowFuck
От: Хабаровск
Зарегистрирован: 2012-10-10
Сообщения: 64
Репутация: +  2  -
Профиль   Отправить e-mail  

ForeignKey вопрос

Есть модель 2 которая расширяет модель 1.
Модель 2 связана с моделью 1 с помощью ForeignKey.
Если воспользоваться:

p.choice_set.get()
То возвращается строка из модели 2 в виде unicode которая связана с соответствующей строкой в модели 1.
В моем случае возвращаемая строка, которая изначально состоит не из одной колонки а из нескольких.
Как вернуть словарь который будет содержать в себе имена колонок строки как ключи и значение колонок на связанной строке как значение?



_________
Новичок

Офлайн

#2 Ноя. 9, 2012 11:39:23

ad3w
От: Hua Hin, Thailand
Зарегистрирован: 2012-01-27
Сообщения: 59
Репутация: +  4  -
Профиль   Отправить e-mail  

ForeignKey вопрос

SorrowFuck
Как вернуть словарь который будет содержать в себе имена колонок строки как ключи и значение колонок на связанной строке как значение?

Привести код моделей для начала.



Офлайн

#3 Ноя. 9, 2012 11:45:13

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

ForeignKey вопрос

Не понятно ничего! колонки. ключи, строки, запутал напрочь



Офлайн

#4 Ноя. 9, 2012 12:03:52

SorrowFuck
От: Хабаровск
Зарегистрирован: 2012-10-10
Сообщения: 64
Репутация: +  2  -
Профиль   Отправить e-mail  

ForeignKey вопрос

class Model1(models.Model):
 user = models.IntegerField()
class Model2(models.Model):
 user = models.ForeignKey(Model1, related_name='Model2ToModel1', unique=True)
 phone = models.CharField(max_length=10)
 address = models.CharField(max_length=30)
 def __unicode__(self):
  return u'%s, %s' % (self.phone, self.address)

m1 = Model1.objects.get(id=id)
m2 = m1.Model2ToModel1.get()

То есть строка user | phone | address в Model2
Связана с определенной строкой user в Model1

Как вернуть в m2 список где key это user, phone, address а value соответственно значения их.
Что бы это в последствии можно было передать к примеру в шаблон.



_________
Новичок

Отредактировано SorrowFuck (Ноя. 9, 2012 12:06:52)

Офлайн

#5 Ноя. 9, 2012 12:14:42

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

ForeignKey вопрос

m1 = Model1.objects.get(id=id)
m2 = Model2.objects.filter(user=Model2).values('user','phone','address')



Офлайн

#6 Ноя. 9, 2012 13:08:23

SorrowFuck
От: Хабаровск
Зарегистрирован: 2012-10-10
Сообщения: 64
Репутация: +  2  -
Профиль   Отправить e-mail  

ForeignKey вопрос

Написал код для рабочих моделей:

mainProfile = User.objects.get(username='admin')
addProfile = UserProfile.objects.filter(user=mainProfile).values('age','avatar','citizenship','city','country','id','rating','user','verification')
В addProfile возвращается список с одним значением, которое является словарем.
Но почему-то когда я пробую пройтись циклом по словарю возвращается ошибка:
ValueError: too many values to unpack



_________
Новичок

Офлайн

#7 Ноя. 9, 2012 13:24:04

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

ForeignKey вопрос

Это уже не проблема фреймворка, показывай как “пробую пройтись циклом по словарю”



Офлайн

#8 Ноя. 9, 2012 13:48:21

SorrowFuck
От: Хабаровск
Зарегистрирован: 2012-10-10
Сообщения: 64
Репутация: +  2  -
Профиль   Отправить e-mail  

ForeignKey вопрос

Разобрался, забыл про методы словарей.



_________
Новичок

Офлайн

#9 Ноя. 9, 2012 14:09:34

ad3w
От: Hua Hin, Thailand
Зарегистрирован: 2012-01-27
Сообщения: 59
Репутация: +  4  -
Профиль   Отправить e-mail  

ForeignKey вопрос

SorrowFuck
То есть строка user | phone | address в Model2
Связана с определенной строкой user в Model1
Никак она не связана с строкой.



Офлайн

#10 Ноя. 9, 2012 14:20:26

SorrowFuck
От: Хабаровск
Зарегистрирован: 2012-10-10
Сообщения: 64
Репутация: +  2  -
Профиль   Отправить e-mail  

ForeignKey вопрос

Отношение многие к одному это не связь?
Поясните тогда.



_________
Новичок

Отредактировано SorrowFuck (Ноя. 9, 2012 14:24:21)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version