2011-10-12 101 views
0

我经常想从一张桌子上抢一块。所以我这样做:有没有更快的方法来做到这一点?

tmp = my_model.objects.get(pk=5) //Or some other record... 
myVar = tmp.myField 

现在myVar拥有我想要的值。这两个步骤过程很烦人。是否有一个这样做的一步吗?

感谢

+0

是否有你需要得到一个独立变量值的原因?通常,您只需在代码中使用'model_instance.field_name'即可,而无需执行第二步。 –

+0

因为使用'model_instance.field_name'是一大堆的输入,如果我需要在一个代码块的十个不同位置的值。简单地分配'Y = model_instance.field_name'使得输入更容易:-) – Garfonzo

+0

我将把一个信息[在此网站] [1] [1]:http://stackoverflow.com/questions/ 1372016/django-models-custom-functions – LPunker

回答

4
myVar = my_model.objects.get(pk=5).myField 
+0

我应该想到这一点。谢谢:-) – Garfonzo

1

,因为你只关注一个领域,我建议:

myVar = my_model.objects.values('myField').get(pk=5)['myField'] 

没有必要把你的DB不适当的负荷。

+0

它可能工作,如果它是:_myVar = my_model.objects。 **过滤器**(pk = 5).values('myField')** [0] ** ['myField'] _ – seler

+0

对不起。是的,我的订单已关闭。 “价值”必须在“获得”之前。一旦你打电话给你,你就完成了。 –

0
myVar = my_model.objects.filter(pk=5).values_list('myField', flat=True)[0] 

我个人认为上面是最优雅的方式。它会从select只有myField从数据库中,并将其传递到myVar

相关问题