【问题标题】:Adding many to many fields (M2M) manually in django?在 django 中手动添加多对多字段(M2M)?
【发布时间】:2012-07-05 22:54:10
【问题描述】:

我的 django 模型项目中有一个 M2M 字段。在我看来,我想使用 update() 函数更新模型实例。我知道要更新其他普通字段,我们可以传递字段字典。 但是如何将 M2M 字段传递给 update() 函数?

【问题讨论】:

    标签: django model m2m


    【解决方案1】:

    您可以使用add() 函数(在您的update() 之外)轻松地将关系添加到ManyToManyField:

    blog.entries.add(post_1, post_2 ...)
    

    【讨论】:

      【解决方案2】:

      更新manytomany字段,您需要获取子类的实例,然后应用更新函数。

      y 类:

       b = Text Field
      

      X 类:

       y = ManyToMany(y)
      

      代码:

      for y in x.y.all():
          if y: meet you condition for which row to update
             y.update(b='update')
      

      我猜 django 确实知道支持 update() 和 M2M,因为它只是为支持创建关联表,它无法理解关联表中的哪一行要更新。

      【讨论】:

        猜你喜欢
        • 2019-04-15
        • 1970-01-01
        • 1970-01-01
        • 2013-02-05
        • 2021-04-02
        • 2021-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多