假设我做了一个模型:
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