得到Django Model或Model实例的属性值

摘要: 有什么好方法得到django model或model instance 的属性值呢?也就是要取得这个类中所有的属性值。第一种可以选择的方法,是利用 __dict__.keys()第二种方法,利用 _meta.fields ,对类和具体的类实例都是可以用的。

有什么好方法得到django model或model instance 的属性值呢?也就是要取得这个类中所有的属性值。

from django.db import models
class Musician(models.Model):
    first_name = models.CharField()
    last_name  = models.CharField()
    instrument = models.CharField()

第一种可以选择的方法,是利用 __dict__.keys()
m = Musician(first_name='Norah', last_name='Jones', instrument='piano')
print m.__dict__.keys()
#['last_name', 'instrument', 'first_name', 'id']

第二种方法,利用 _meta.fields ,对类和具体的类实例都是可以用的。
print [f.name for f in m._meta.fields] #针对类实例的操作
#['id', 'first_name', 'last_name', 'instrument']
 print [f.name for f in Musician._meta.fields]#针对类对象的操作
#['id', 'first_name', 'last_name', 'instrument']


个人喜欢用第二种方式。

上一篇: Django model,QuerySet 序列化成json的方法
下一篇: 比较python类的两个instance(对象) 是否相等

Avatar

www.shipingbaijiale.com 评论于: 2012-10-25

这个代码找了很久,终于让我找到了,谢谢中
 评论 ( What Do You Think )
名称
邮箱
网址
评论
验证
   
 

 


  • 微信公众号

  • 我的微信

站点声明:

1、一号门博客CMS,由Python, MySQL, Nginx, Wsgi 强力驱动

2、部分文章或者资源来源于互联网, 有时候很难判断是否侵权, 若有侵权, 请联系邮箱:summer@yihaomen.com, 同时欢迎大家注册用户,主动发布无版权争议的 文章/资源.

3、鄂ICP备14001754号-3, 鄂公网安备 42280202422812号