我正在尝试使用Q在Django中进行查询。此类使用的数据库是PostgreSQL。
我的模特是:
class DataSetPG(models.Model):
tower_code = models.CharField(max_length=20, null=False)
time_stamp = models.DateTimeField(default=datetime.now, null=True, blank=True)
value = models.CharField(max_length=200)
class Meta:
ordering = ('tower_code',)
def __str__(self):
return "%s" % self.tower_code
我的视图要求:
DataSetPG.objects.filter(Q(tower_code="something"))
但是我得到了这个错误:
TypeError: cannot unpack non-iterable Q object
我做错了什么?我尝试使用.get代替.filter和许多其他种类的东西,但是什么也没有。我还使用Q在mongo数据库中查询,效果很好。
答案 0 :(得分:0)
把我的评论作为答案:
据我所知,您不能将Mongo Q用作DjangoQ。您应该这样导入:
'AddDate' => array(
'type' => 'TIMESTAMP',
)
以此代替from mongoengine.queryset.visitor import Q as MongoQ
from django.db.models import Q as DjangoQ
,而使用Q(tower_code='something')
。无论您在哪里使用mongoengine的Q,都应将其替换为MongoQ。