打印一组对象的所有值而不迭代它

时间:2013-08-29 11:58:11

标签: django python-2.7

我想打印从数据库返回的对象组的值。

我尝试过如下,

Products = productBll.listProduct(params)
print Products.__dict__

它将显示如下,

{'_result_cache': [Product: Product object, Product: Product object]}

但是当我这样做的时候,

for prd in Products:
    print prd.__dict__

显示Products对象中的所有内容

{'product_price': 0.0, 'right_side_min_depth': 0.0, 'short_description': u'', 'left_side_min_depth': 0.0, 'max_depth': 0.0, 'height_scale': 2.0, 'left_side_max_depth': 0.0, 'is_hinges': u'No', 'max_height': 1.04}
{'product_price': 0.0, 'right_side_min_depth': 0.0, 'short_description': u'', 'left_side_min_depth': 0.0, 'max_depth': 1000.0, 'height_scale': 1000.0, 'left_side_max_depth': 0.0, 'is_hinges': u'No', 'max_height': 1000.0}

但是我想要上面的结果而不使用for循环。

有没有办法通过一行代码来实现?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用values()。假设你的模型是Products你可以做

Product.objects.filter(your_filter_criteria).values()

这将为您提供每个项目的dict列表。

答案 1 :(得分:1)

如果你所寻找的只是一行,那就是:

Products = productBll.listProduct(params)
print [prd.__dict__ for prd in Products]