返回Celery任务中的QuerySet对象(mongo)



我有一个应用程序,在其中我使用Celery作为任务队列,使用MongoDB数据库,并将mongoengine用作ORM。如果我尝试使用任务从数据库中获取一个对象,并将其转换为JSON,它会很好地工作。但是,如果我试图返回QuerySet对象,就会引发一个错误。我需要获取QuerySet对象,因为我正在另一个模型中将其用作LazyReferenceField

有没有办法做到这一点,或者从我的任务中获得QuerySet对象?

我看到了类似问题的解决方案,建议Pickle,但也不鼓励这样做。

我认为尝试序列化QuerySet对象是一个糟糕的想法,但请注意,(Lazy(ReferenceField可以通过使用ID来设置,所以也许您可以简单地返回ID。如果这不起作用,最好的选择是返回ID,然后在另一侧(消耗芹菜输出的一侧(加载对象

class Parent(Document):
name = StringField()
class House(Document):
owner = ReferenceField(Parent)
p = Parent(name='Bob').save()
House(owner=p.id).save()
h = House.objects.first()
assert h.owner.name == 'Bob'

相关内容

  • 没有找到相关文章

最新更新