2014-08-27 41 views
-1

有一个对象Foo,其中包含一个值'foo' 有一个对象Bar,其属性foo 我想了解如何使用Django的extra(select{})获取Bar对象,该对象的foo属性等于'foo'如何正确使用Django的额外(select = {})? [已解决]

from foo.models import Foo 
from bar.models import Bar 
f = Foo.objects.all()[0] # value is 'foo' 
b = Bar.objects.extra(select={"qux": foo="foo"}) # this doesn't work 

{"qux": foo="foo"}产生错误。有些事情是错的。

答:对我来说,正确的代码是:

b = Bar.objects.extra(select={"'qux'": "'foo'"}) # this doesn't work 

因此,无论qux和Foo应该是引号内。

回答

2

嗯,是的。这是无效的字面语法。

{'foo': 'foo'} 
+0

我试过了。控制台产生错误:“字段列表”中的未知列“foo”。 – Oleg 2014-08-27 15:20:27

+0

这是因为您需要将其指定为底层SQL引擎的字符串。 ''“foo”'' – 2014-08-27 15:21:55

+0

好的,这工作!谢谢。 – Oleg 2014-08-27 15:24:18

相关问题