我有一個模型,它看起來像這樣,Django的多對多關係的add()錯誤
class PL(models.Model):
locid = models.AutoField(primary_key=True)
mentionedby = models.ManyToManyField(PRT)
class PRT(models.Model):
tid = ..
將得到許多在MySQL中許多表形成,
+------------------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| PL_id | int(11) | NO | MUL | NULL | |
| PRT_id | bigint(64) | NO | MUL | NULL | |
+------------------+------------+------+-----+---------+----------------+
現在,如果PL PL是一個對象,PRT是PRT的,然後做
pl.mentionedby.add(prt)
給我一個錯誤
不正確的整數值:在第1" 行的列 'prt_id' 'PRT對象'
而
pl.mentionedby.add(prt.tid)
工作正常 - 有一點需要注意。
我可以看到pl.mentionedby.all()
中的所有元素,但我無法訪問提及的PRT對象並查看其prt.mentionedby_set.all()
。
有誰知道爲什麼會發生這種情況?最好的解決辦法是什麼?
謝謝!
嘿梅茲 - 這些幾乎是完整的模型。其他字段只是一個名稱和類別(都是text/varchar),所以我不知道你的意思是什麼重寫。 – viksit 2009-08-04 21:09:05