关于 Django 中的 ManyToManyFields



假设我做了一个模型:

class A(models.Model):
       col = models.ManyToManyField(B)

现在,迁移后,这将创建一个包含字段 id,A_id,B_id 的表A_B。现在,如果我想访问表A_B的 id,该怎么做?以及如何更新此表的B_id?

如果你有一个对象 A:

A_obj.col.all()

这将返回与该 A 相关的所有A_B对象

for ab in A_obj.col.all():
   print ab.id

这将打印表A_B的所有 ID。

for ab in A_obj.col.all():
    ab.B_id = new id
    ab.save()

这将使用新 ID 更新您的B_id。

你正在寻找 通过关系

class A(models.Model):
       col = models.ManyToManyField(B, through='C')
class C(models.Model):
      a = models.ForeignKey(A)
      b = models.ForeignKey(B)
      //any other extra field

然后,可以筛选或查询C表。

例如,要打印所有C实例id

for c in C.objects.all():
     print c.id

相关内容

  • 没有找到相关文章

最新更新