Не могу использовать "gte" в запросе фильтра mongoengine - PullRequest
0 голосов
/ 24 января 2020

У меня есть класс документов MongoEngine Student ..

class Student(Document):
    db_id = StringField()
    name = StringField()
    score = IntField()
    deleted = BooleanField(default=False, required=True)

Я бы хотел запросить как

Student.objects.filter (score__gte = 30)

Но я получаю сообщение об ошибке, подобное AttributeError: у объекта int нет атрибута 'get'

Может кто-нибудь помочь мне, как я могу это сделать? Спасибо!

1 Ответ

0 голосов
/ 24 января 2020

Следующий (минимальный) фрагмент отлично работает

from mongoengine import *
connect()

class Student(Document):
    name = StringField()
    score = IntField()

Student(name='Bob', score=35).save()

print(Student.objects(score__gte=30))
# output: [<Student: Student object>]

У меня нет проблем с запуском вашего кода, возможно, начните с моего и продолжайте до тех пор, пока вы не определите виновника. Я бы также порекомендовал удалить существующую коллекцию mon go перед тестированием.

Фактически, в зависимости от того, где произошла ошибка (у нас нет трассировки стека, поэтому мы не можем сказать) , может случиться так, что произойдет сбой при загрузке существующего документа mon go (возвращаемого по вашему запросу) в конструктор Student

...