У меня есть модель, которая выглядит следующим образом,
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»
для столбца 'prt_id' в строке 1 "
, тогда как
pl.mentionedby.add(prt.tid)
отлично работает - с одной оговоркой.
Я вижу все элементы в pl.mentionedby.all()
, но не могу перейти к упомянутому объекту PRT и увидеть его prt.mentionedby_set.all()
.
Кто-нибудь знает, почему это происходит? Какой лучший способ это исправить?
Спасибо!