gpt4 book ai didi

django 将模型实例转换为 dict

转载 作者:行者123 更新时间:2023-12-04 00:46:51 25 4
gpt4 key购买 nike

我是 Django 的初学者。我需要将 Model 实例转换为类似于 Model.objects.values 的字典,并带有关系字段。所以我写了一个小函数来做到这一点:

def _get_proper(instance, field):
if field.__contains__("__"):
inst_name = field.split("__")[0]
new_inst = getattr(instance, inst_name)
next_field = "__".join(field.split("__")[1:])
value = _get_proper(new_inst, next_field)
else:
value = getattr(instance, field)

return value

def instance_to_dict(instance, fields):
return {key: _get_proper(instance, key) for key in fields}

所以,我可以这样使用它:
user_obj = User.objects.select_related(...).get(...)
print instance_to_dict(user_obj, ["name", "city__name", "city_id"])

你能提出更好的解决方案吗?谢谢!
附言对不起我的英语不好。

最佳答案

This actually already exists in Django, but its not widely documented.

from django.forms import model_to_dict
my_obj = User.objects.first()
model_to_dict(my_obj,
fields = [...], # fields to include
exclude = [...], # fields to exclude
)

关于django 将模型实例转换为 dict,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28757469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com