【问题标题】:How to update field for EmbeddedDocument in graphene mongo python如何在石墨烯 mongo python 中更新 EmbeddedDocument 的字段
【发布时间】:2019-11-30 16:23:29
【问题描述】:

我正在尝试更新 IgThread EmbeddedDocument 的一个字段,但出现错误: 'IgThread' object has no attribute 'save'

我尝试了一些奇怪的解决方案,但都不起作用。 当前代码有bug

变异:

def mutate(self, _, **kwargs):
    ig_pk = kwargs['ig_pk']
    thread_input = kwargs['ig_thread']

    lead_ = Lead.objects(ig__pk=ig_pk).first()

    for thread in lead_.messages.ig:

        Lead.objects(
            ig__pk=ig_pk,
            messages__ig__thread_id=thread_input.thread_id,
        ).update(
            push_all__messages__ig__S__messages=new_messages,
        )

        thread.last_activity_at = thread_input.last_activity_at
        thread.save()

家长:

class Lead(Document):
    id = fields.ObjectIdField()
    messages = fields.EmbeddedDocumentField(Messages)

嵌套的嵌入式文档:

class Messages(EmbeddedDocument):
    ig = fields.EmbeddedDocumentListField(IgThread)

更深入:

class IgThread(EmbeddedDocument):
    thread_id = fields.StringField()
    last_activity_at = fields.StringField()

我想更新 last_activity_at 请帮忙,我必须修复那个错误,在办公室里没有人能帮我解决这个问题:

【问题讨论】:

    标签: python mongodb graphene-python


    【解决方案1】:

    解决了!这很容易......

    def mutate(self, _, **kwargs):
        ig_pk = kwargs['ig_pk']
        thread_input = kwargs['ig_thread']
    
        lead_ = Lead.objects(ig__pk=ig_pk).first()
    
        for thread in lead_.messages.ig:
    
            Lead.objects(
                ig__pk=ig_pk,
                messages__ig__thread_id=thread_input.thread_id,
            ).update(
                push_all__messages__ig__S__messages=new_messages,
            )
    
            lead_ = Lead.objects(ig__pk=ig_pk).first() <--------
            thread.last_activity_at = thread_input.last_activity_at
            lead_.save() <--------
    

    【讨论】:

      猜你喜欢
      • 2019-04-03
      • 2019-11-18
      • 2019-12-20
      • 2019-08-08
      • 2020-08-11
      • 2021-10-29
      • 2018-04-07
      • 2017-05-13
      • 2017-05-11
      相关资源
      最近更新 更多