Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django多个关系add()错误_Python_Django_Django Models_Many To Many - Fatal编程技术网

Python Django多个关系add()错误

Python Django多个关系add()错误,python,django,django-models,many-to-many,Python,Django,Django Models,Many To Many,我有一个像这样的模型 class PL(models.Model): locid = models.AutoField(primary_key=True) mentionedby = models.ManyToManyField(PRT) class PRT(models.Model): tid = .. mysql中生成的多对多表的形式如下: +------------------+------------+------+-----+---------+------

我有一个像这样的模型

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.referencedby.all()
中的所有元素,但我无法转到提到的PRT对象并查看其
PRT.referencedby\u set.all()

有人知道为什么会发生这种情况吗?最好的解决方法是什么


谢谢!

这些是完整的模型吗?我只能假设某个地方被覆盖了,可能不应该被覆盖


你能发布完整的代码吗?

直接添加
prt
应该可以在第一次尝试时使用。你如何检索
pl
prt
?假设你的数据库中有一些数据,试试Django shell中的那些命令,看看是否有效。问题中似乎缺少一些信息。运行后e> python manage.py shell:

from yourapp.models import PL
pl = PL.objects.get(id=1)
prt = PRT.objects.get(id=1)
pl.mentionedby.add(prt)

嘿,Mez-这些几乎都是完整的模型。其他字段只是一个名称和类别(都是text/varchar类型),所以我不确定覆盖什么是什么意思。