Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 22, 2009 18:56:52

Nick2009
От:
Зарегистрирован: 2009-06-24
Сообщения: 161
Репутация: +  0  -
Профиль   Отправить e-mail  

Имя поля как параметр

Как бы сделать такой финт?

fieldname = 'field1'
o=T.objects.get(id=1)
field = o.get(fieldname) # вот это не прокатывает
field += 1
o.save()



Офлайн

#2 Дек. 22, 2009 19:19:22

expee
От:
Зарегистрирован: 2009-12-21
Сообщения: 197
Репутация: +  0  -
Профиль   Отправить e-mail  

Имя поля как параметр

Получить поле здесь можно так:

field = o.field1
Дальше ты пытаешься увеличить его на еденицу. В принципе получать тебе ничего не нужно. Можно записать просто вот так:
o = T.objects.get(pk=1)
o.field1 += 1
o.save()



Отредактировано (Дек. 22, 2009 19:42:02)

Офлайн

#3 Дек. 22, 2009 20:00:04

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Имя поля как параметр

Никак, если параметр - не список. В питоне нет указателей и алиасов для переменных.

Офлайн

#4 Дек. 22, 2009 22:49:48

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Имя поля как параметр

Nick2009
Как бы сделать такой финт?
fieldname = 'field1'
o=T.objects.get(id=1)
setattr(o, fieldname, getattr(o, fieldname) + 1)
o.save()
Учите питон.



Офлайн

#5 Дек. 23, 2009 00:34:57

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Имя поля как параметр

Он не только хотел получить атрибут по имени, но ещё и именованную ссылку на него получить.

Офлайн

#6 Дек. 23, 2009 13:59:05

Nick2009
От:
Зарегистрирован: 2009-06-24
Сообщения: 161
Репутация: +  0  -
Профиль   Отправить e-mail  

Имя поля как параметр

Daevaorn
Nick2009
Как бы сделать такой финт?
fieldname = 'field1'
o=T.objects.get(id=1)
setattr(o, fieldname, getattr(o, fieldname) + 1)
o.save()
Учите питон.
Спасибо! Это то, что нужно. Именованная ссылка не обязательна, главное результат.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version