字符串字典表示Python / Django中的模型/对象实例?

时间:2012-06-06 09:15:46

标签: python django dictionary model representation

我觉得这是一个非常简单的问题,但我是Python的新手,我正在同时学习Django。

我的目标是创建一个字符串字典表示,即它的字典格式化,但字符串是Django中Model的实例。我怎么能这样做?是否有一个内置函数,我可以直接从对象的实例调用,或者我是否必须定义一个?

更新

我想在模型定义本身中调用此功能,即我正在实现需要此功能的类方法或函数。我正在考虑的功能类似于python的内置函数locals(),但应该只返回模型的属性。

我还想补充一点,我将在模型的实例上调用此功能,该实例尚未保存到数据库中。所以从本质上讲,我将处理一个模型的实例,该实例表示一个尚未存在于数据库中的记录。所以使用Manager or 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

谢谢大家!

3 个答案:

答案 0 :(得分:1)

使用p = Person(name ='john',age = 10).values()

见这里:https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.values

要使用字符串,请使用:

s = str(p[0])

答案 1 :(得分:1)

您可以将对象序列化为json格式,例如与django内置serializers 这样可以很容易地反序列化。

答案 2 :(得分:1)

我从SO post找到了我正在寻找的解决方案......

一些Django对象obj

[(field.name, getattr(obj,field.name)) for field in obj._meta.fields]

并在结果上调用dict()