【发布时间】:2011-09-08 22:21:01
【问题描述】:
我有一个[(3,2),(2,3)] 形式的外键元组列表。我想将项目插入到模型中的 ManyToMany 表中:
class Place(models.Model):
data=models.IntegerField()
connected_to=models.ManyToManyField('self')
class PlaceMeta(models.Model):
place=models.ForeignKey("places.Place")
我正在插入列表(连接):
places=Place.objects.all()
for conn_1, conn_2 in connections:
for place in places:
if place.data == conn_1 and conn_1 != conn_2:
place.connected_to.add(conn_1, conn_2)
elif place.data == conn_2 and conn_1 != conn_2:
fixture.connected_to.add(conn_2, conn_1)
当我打印列表时,它会打印[(3L, 2L),(2L, 3L)](例如),但在我插入表格后显示 (2,2)、(3,2)、(2,3) 和 (3,3) 有已插入。
我尝试在代码中的多个点检查元组 (a,a) 是否存在,并且当我在插入之前打印时显示没有这样的元组。那么如何避免插入这样的元组,因为在我插入之前它们甚至不存在于列表中?
【问题讨论】:
-
在conn_1、conn_2两边加上括号
-
在哪里?在 for 语句中?所以它是
for (conn_1, conn_2) in connections:
标签: python mysql django foreign-keys