Python django在M2M关系中查找导航表

Python django在M2M关系中查找导航表,python,django,many-to-many,lookup,Python,Django,Many To Many,Lookup,我试图编写一个函数来存储多个字段的串联sting,包括一些存储在M2M关系的关系表中的字段。 代码如下: class substance(models.Model): name = models.Charfield() ... class rel_med_subs(models.Model): id_med = models.ForeignKey(medication, related_name='relation_med') id_subs = models.Foreign

我试图编写一个函数来存储多个字段的串联sting,包括一些存储在M2M关系的关系表中的字段。 代码如下:

class substance(models.Model):
  name = models.Charfield()
  ...


class rel_med_subs(models.Model):
  id_med = models.ForeignKey(medication, related_name='relation_med')
  id_subs = models.ForeignKey(substance, related_name='relation_subs')
  order = models.IntegerField()
  strength = models.FloatField(null=True, blank=True)
  strength_unit = models.ForeignKey(units)


class medication(models.Model):
  name = models.Charfield()
  substance = models.ManyToManyField(substance, through='rel_med_subs')
  autogenerated = models.CharField(blank=False, default='')
  ...

  def save(self, force_insert=False, force_update=False):
    self.autogenerated = u'%s' % (' '.join[(u'%s %s'(s.name, s.strength) for s in self.rel_med_subs.order_by('order')])
    self(medication,self).save(force_insert,force_update
当我只询问名称时,函数工作正常,但如果我尝试从关系表中引入属性,django会抱怨强度不是实体模型的一部分

如何将关系中的属性获取到自动生成的字段中


谢谢

问题在于,
名称
强度
属性属于不同的对象(
强度
属于
相关性
名称
属于
物质
)!你不能通过self.rel\u med\u subs.order\u by('order')中的s的
(s.name,s.strength)来引用这两个词。
理解-
s
只能有
名称
强度

rel\u med\u subs属性似乎是
substance
类型而不是
rel\u med\u subs
类型的对象的关系管理器。使用
dir
检查
medicing
的属性,以查看
rel\u med\u subs
(可能类似于
rel\u med\u subs\u set
——我真的记不起来了,总是用
dir
检查它。但是请确保
medicing
将有两个反向关系属性:一个用于与
物质的多2个关系,另一个用于与
rel\u med\u subs
的多2个关系找到正确的反向管理器,然后可以使用
s.id\u subs.name
s.strength

还请将您的类名大写,并使用相应的命名方式(相关的医学子类应命名为MedicineSubstanceration)