【问题标题】:how to retrive values form RawQuerySet in django?如何从 Django 中的 QuerySet 中检索值?
【发布时间】:2013-12-17 23:26:05
【问题描述】:

我的输入查询是

query = "select * from tab1 left join tab2 on tab2.patient_id =tab1.patient_id ,tab3 left join tab4 on tab4.patient_id =tab3.patient_id"

data = model_name.objects.raw(query)

如何从RawQuerySet 中检索值?

【问题讨论】:

标签: python django django-queryset


【解决方案1】:

使用Managerraw 方法进行原始查询获得的结果生成的实例类似于使用getfilter 方法生成的实例。要获得一个字段,只需执行obj_name.attr
例如:

class Tab(models.Model):
    field1 = models.BooleanField()
    field2 = models.PositiveIntegerField()

query = "select * from app_name_tab"
objs = Tab.objects.raw(query)
for obj in objs:
    print obj.field1, obj.field2

更多信息,请参考https://docs.djangoproject.com/en/dev/topics/db/sql/

【讨论】:

  • 感谢您的回复.. 我想访问所有字段数据。我不知道列名,因为加入查询动态生成...
  • 您可以使用tab._meta.fields 获取表中所有字段的列表。遍历它们并使用getattr 方法获取如下值:for f in obj._meta.fields: print getattr(obj, f)
  • 我有一个 RawQuerySet 对象,需要知道如何检索作为集合包含在对象中的属性值。这个答案正是我所需要的。我不明白为什么它一开始就被否决了。
猜你喜欢
  • 1970-01-01
  • 2010-11-28
  • 2013-07-29
  • 2020-10-01
  • 1970-01-01
  • 2022-11-23
  • 2022-11-10
  • 2017-08-25
  • 2019-01-15
相关资源
最近更新 更多