Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django无法解压缩不可编辑的';Q';对象_Django - Fatal编程技术网

Django无法解压缩不可编辑的';Q';对象

Django无法解压缩不可编辑的';Q';对象,django,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=2

我试图用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

我做错了什么?我试过了。获取而不是。过滤和许多其他类型的东西,但什么都没有。我还在mongo数据库中使用Q进行查询,效果很好。

将我的评论作为答案:

在我看来,你不能把Mongo Q当作Django Q。您应该这样导入:

from mongoengine.queryset.visitor import Q as MongoQ
from django.db.models import Q as DjangoQ

这样,就不用
Q(tower\u code='something')
使用
DjangoQ(tower\u code='something')
。无论您在何处使用mongoengine的Q,请使用MongoQ替换它。

仅提供更多信息。使用正常的查询工作:DataSetPG.objects.filter(tower_code=“port525”)以防万一,您要为Q导入什么类?@17slim是的,这就是问题所在,im导入:mongoengine.queryset.visitor如何使用来自不同类的两个Q?
来自mongoengine.queryset.visitor导入Q为MongoQ
来自django.db.models导入Q为DjangoQ
是的,就是这样。我已经对这件事感到绝望,没有注意它的重要性。非常感谢。