Найти - Пользователи
Полная версия: model to dict
Начало » Django » model to dict
1
del3d
Подскажите, пожалуйста, как из модели получить словарь:
user = Users.objects.get(id=id_user)
как из user сделать словарь с именами полей и их значениями?
H1D
d={}
user = Users.objects.get(id=id_user)
for field in user._meta.get_all_field_names()
d.update({field:getattr(user,field)})
del3d
ок, спасибо..
думал я, что метод у Model есть, который так делает..
ZZZ
То ли я чего-то не понимаю, то ли это какой-то бред…
d.update({field:getattr(t,field)})
Может более красиво и по-питоньи?
d[field] = getattr(t, field)
H1D
ZZZ, да! Вы правы, так правильнее.
Просто изначально я через генераторы написал, но это не очень explicitly вышло, и я поменял а про этот кусок забыл
aabp
del3d
Подскажите, пожалуйста, как из модели получить словарь:
user = Users.objects.get(id=id_user)
как из user сделать словарь с именами полей и их значениями?
User.objects.values().get(id=1)
del3d
Спасибо, aabp..
AlexanderDanilov
А не проще ли from django.forms.models import model_to_dict использовать?
Ziberbulger
у объекта должен быть атрибут __dict__. Это словарь, в котором содержатся методы и все атрибуты объекта, включая базовые. Я пользуюсь такой функцией, чтобы исключить лишнее

def obj_to_dict(obj):
''' Convert object to dictonary where keys are names of attributes
and values are values of attributes '''

return dict((key, value) for key, value in obj.__dict__.iteritems() \
if not callable(value) \
and not key.startswith('__') \
and not key.startswith('_sa'))
P.S > (_sa - атрибуты добавляемые алхимией)
FishHook
как минимум Вы должны знать нужные Вам поля, тогда на помощь придет метод values
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