Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 12, 2015 01:06:38

tadej
От: Львов
Зарегистрирован: 2014-12-20
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Итерации с полями модели.

Есть некая модель People. И у нее есть атрибуты: id, name, x, y, z… и еще десяток. Все поля, кроме name имеет тип int.
Берем какой нить обьект people с id=n
Существует ли какой нить метод, что бы:
1. у обьекта people я мог рандомно выбрать произвольное поле
2. циклом пройти по всем полям для анализа содержимого

База MySQL

заранее спасибо

Офлайн

#2 Янв. 12, 2015 02:55:37

GreyZmeem
От: Киев
Зарегистрирован: 2013-12-03
Сообщения: 147
Репутация: +  34  -
Профиль   Отправить e-mail  

Итерации с полями модели.

У _meta есть метод который возвращает список всех полей:

>>> o = MyModel.objects.create(name='Object name', test_field_1='Value 1', test_field_2='Value 2')
>>> for field_name in MyModel._meta.get_all_field_names():
...  print('Field {}: {}'.format(field_name, getattr(o, field_name)))
... 
Field id: 7
Field name: Object name
Field test_field_1: Value 1
Field test_field_2: Value 2
Field year: None
>>>

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version