Джанго не может распаковать не повторяемый объект 'Q' - PullRequest
1 голос
/ 09 марта 2019

Я пытаюсь использовать 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 для запросов в базу данных Монго и работает нормально.

1 Ответ

0 голосов
/ 09 марта 2019

Выкладываю мой комментарий как ответ:

Вы не можете использовать Mongo Q в качестве Django Q, насколько я понимаю. Вместо этого вы должны импортировать так:

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

При этом вместо Q(tower_code='something') используйте DjangoQ(tower_code='something'). Везде, где вы использовали Q от mongoengine, замените его на MongoQ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...