【发布时间】:2017-02-05 08:32:02
【问题描述】:
我有两个模型:
AffectedSegment型号
class AffectedSegment(models.Model):
SEGMENTO_ESCAPULA = 'Escápula'
SEGMENTO_HOMBRO = 'Hombro'
SEGMENTO_CODO = 'Codo'
SEGMENTO_ANTEBRAZO = 'Antebrazo'
SEGMENTO_CARPO_MUNECA = 'Carpo/Muñeca'
SEGMENTO_MANO = 'Mano'
SEGMENT_CHOICES = (
(SEGMENTO_ESCAPULA, u'Escápula'),
(SEGMENTO_HOMBRO, u'Hombro'),
(SEGMENTO_CODO, u'Codo'),
(SEGMENTO_ANTEBRAZO, u'Antebrazo'),
(SEGMENTO_CARPO_MUNECA, u'Carpo/Muñeca'),
(SEGMENTO_MANO, u'Mano'),
)
affected_segment = models.CharField(
max_length=12,
choices=SEGMENT_CHOICES,
blank=False,
verbose_name='Segmento afectado',
help_text='Ingrese uno o mas segmentos corporal de miembros superiores'
)
class Meta:
verbose_name_plural = 'Segmentos corporales'
def __str__(self):
return "%s" % self.affected_segment
还有Movement 模型。最后请查看该模型的__str__方法:
class Movement(models.Model):
type = models.CharField(
max_length=255,
verbose_name='Tipo de movimiento'
)
corporal_segment_associated = models.ManyToManyField(
AffectedSegment,
blank=True,
verbose_name='Segmento corporal asociado')
class Meta:
verbose_name = 'Movimiento'
def __str__(self):
return "{},{}".format(self.type, self.corporal_segment_associated)
我有另一个名为 RehabilitationSession 的模型,我希望在其中可以选择多个受影响的段和多个动作,如下所示:
类RehabilitationSession(models.Model):
affected_segment = models.ManyToManyField(
AffectedSegment,
verbose_name='Segmento afectado',
#related_name='affectedsegment'
)
movement = models.ManyToManyField(
Movement, # Modelo encadenado
verbose_name='Movimiento',
#related_name = 'movement'
)
在我的 Django Admin 中,当我转到 RehabilitationSession 模型时,我在 movement 字段中看到以下内容:
据我了解,在ManyToMany 关系中,会使用两个表的 ID 字段创建一个中间表,从而形成这种m2m 关系:
我的问题是:
我怎样才能在我的Movement 模型中访问我想在__str__ 方法中调用的corporal_segment_associated 字段?
任何方向都非常有用 :)
【问题讨论】:
标签: django python-3.x django-models many-to-many