0
私は[(3,2),(2,3)]
の形式の外部キーのタプルのリストを持っています。そして私は、モデル内の多対多のテーブルに項目を挿入する:ForeignKeysが互いに等しいかどうかを確認する
class Place(models.Model):
data=models.IntegerField()
connected_to=models.ManyToManyField('self')
class PlaceMeta(models.Model):
place=models.ForeignKey("places.Place")
と私はとのリスト(接続)を挿入しています:私は(それが[(3L, 2L),(2L, 3L)]
を印刷し、リストを印刷するとき
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)
を(2)、(3,2)、(2,3)、(3,3)が挿入されていることを示しています。
タプル(a、a)が存在するかどうかをチェックするコード内の複数の箇所で試してみました。挿入する前に印刷するとそのようなタプルは表示されません。では、挿入する前にリストに存在しないように見えるようなタプルを挿入するのを避けるにはどうすればよいですか?
がconn_1の周りに括弧を追加conn_2 – zsong
(そしておそらく
data
フィールドにunique=True
属性を追加しますか)? for文の中で?コネクションの中では 'for(conn_1、conn_2)です:' –