Django无法解压缩不可迭代的'Q'对象

时间:2019-03-08 22:47:10

标签: django

我正在尝试使用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数据库中查询,效果很好。

1 个答案:

答案 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。