Что-то вроде
my_model.data_dict['my_field']
Что даст вам текущее значение для этого поля?Нужно что-то подобное для взаимодействия с другим моим кодом.
Вы также можете взглянуть на метод значений в наборе запросов.Он возвратит словари для любого запроса вместо обычных экземпляров модели.
https://docs.djangoproject.com/en/1.3/ref/models/querysets/#values
(из документов)
>>> Blog.objects.filter(name__startswith='Beatles').values() [{'id': 1, 'name': 'Beatles Blog', 'tagline': 'All the latest Beatles news.'}]
У них есть свойство __dict__ (стандартное свойство): my_model.__dict__['my_field']
__dict__
my_model.__dict__['my_field']
Тем не менее, стандартный способ сделать такой доступ - getattr: getattr(my_model, 'my_field').
getattr
getattr(my_model, 'my_field')
См .: http://docs.python.org/reference/datamodel.html#new-style-and-classic-classes. Также посмотрите __slots__, чтобы понять, какие классы не имеют этого свойства.
__slots__
Как отмечает Джереми выше, любой, кто ищет это с помощью django, может также подумать об использовании queryset.values() (https://docs.djangoproject.com/en/dev/ref/models/querysets/#values).
queryset.values()
Это немного сложно, но вы можете сделать это так:
def model2dict(obj): return dict([(field, getattr(obj, field)) for field in obj._meta.get_all_field_names()])
Таким образом, вы можете получить доступ к значениям:
model2dict(my_model)['my_field']