Python/Django中模型/对象实例的字符串字典表示法?
我觉得这是一个非常简单的问题,但我对Python还是新手,同时我也在学习Django 我的目标是在Django中创建一个模型实例的字符串字典表示,即它是字典格式的,但是是字符串。我怎么能这么做?是否有一个可以直接从对象实例调用的内置函数,或者我必须定义一个 更新: 我想在模型定义本身中调用这个功能,也就是说,我正在实现一个需要这个功能的类方法或函数。我正在考虑一个功能,它的行为类似于python的内置函数Python/Django中模型/对象实例的字符串字典表示法?,python,django,dictionary,model,representation,Python,Django,Dictionary,Model,Representation,我觉得这是一个非常简单的问题,但我对Python还是新手,同时我也在学习Django 我的目标是在Django中创建一个模型实例的字符串字典表示,即它是字典格式的,但是是字符串。我怎么能这么做?是否有一个可以直接从对象实例调用的内置函数,或者我必须定义一个 更新: 我想在模型定义本身中调用这个功能,也就是说,我正在实现一个需要这个功能的类方法或函数。我正在考虑一个功能,它的行为类似于python的内置函数locals(),但应该只返回模型的属性 我还想补充一点,我将在尚未保存到数据库的模型实例上
locals()
,但应该只返回模型的属性
我还想补充一点,我将在尚未保存到数据库的模型实例上调用此功能。所以本质上,我将处理一个模型的实例,该实例表示数据库中尚未存在的记录。所以任何使用管理器或QuerySet的函数,我想都不是我要找的原因
例如:
class Person(models.Model):
name = ...
age = ...
def func_doing_something(self):
#get the string dictionary representation of this model's instance
#do something to it
#return something
谢谢大家 使用p=Person(name='john',age=10).values()
请看这里:
要将其转换为字符串,请使用:
s = str(p[0])
您可以将对象序列化为json格式,例如使用django内置
这使您可以非常轻松地进行反序列化。我从中找到了我正在寻找的解决方案
一些Django对象obj
[(field.name, getattr(obj,field.name)) for field in obj._meta.fields]
然后就结果打电话给dict()
。谢谢你的快速回复,但这只是我想说的第一部分。我想把字典存储到数据库中,所以我想我需要先把它转换成字符串。还有别的办法吗?如何将字典表示形式转换为字符串?非常感谢你!为什么要将字符串表示形式存储在数据库中?这毫无意义。假设我想用该字符串作为参数调用另一个函数,我需要它是字符串,因为该函数将它作为字符串处理。:)哦,那很容易。非常感谢你!我现在觉得很傻。哈哈哈,真的,嗨,很抱歉我不能接受你的回答。我刚刚意识到这不是我要解决的问题的解决方案。基本上,我将一次处理一个模型的单个实例,而不是q QuerySet,因此它不起作用。我想在模型定义本身中获取模型实例(即对象)的字符串字典表示形式。在我的例子中,在将模型保存到数据库之前,我将一次处理一个模型实例。非常感谢。