ссылки на перекрестные объекты mongoengine

#python #mongodb #mongoengine

#python #mongodb #mongoengine

Вопрос:

Я действительно новичок в mongo и mongoengine. Я хочу создать объект, подобный этому:

 class Candle(Document):
    value = IntField()
    next = ReferenceField(Candle)
    prev = ReferenceField(Candle)
  

Для использования подобным образом:

 if Candle.value > Candle.next.value:
    do smf
  

Возможно ли это?
Я действительно буду рад увидеть несколько полезных ответов.

Ответ №1:

Вам нужно использовать строку ‘self’ в качестве аргумента ReferenceField, когда вы ссылаетесь на определяемый класс.

Ответ №2:

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

Попробуйте:

 class Candle(Document):
    value = IntField()
    next = ReferenceField('Candle')
    prev = ReferenceField('Candle')
  

Использование кавычек позволит избежать циклического импорта, и все должно работать так, как требуется.