【发布时间】:2010-11-16 14:41:27
【问题描述】:
我有一个看起来像这样的模型,
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)
给我一个错误
不正确的整数值:“PRT 对象” 对于第 1 行的列 'prt_id'"
而
pl.mentionedby.add(prt.tid)
工作正常 - 有一个警告。
我可以看到 pl.mentionedby.all() 中的所有元素,但我无法转到提到的 PRT 对象并查看它的 prt.mentionedby_set.all()。
有人知道为什么会这样吗?最好的解决方法是什么?
谢谢!
【问题讨论】:
标签: python django django-models many-to-many