通过它们之间的关系在另一个模型中获取模型的特定字段

Getting specific fields of a model in another, via relationships between them

我正在使用 django-smart-selects 根据在相同表单中选择的选项部署特定表单字段。 我有以下型号:

Session,与 Metrics

ManyToMany 关系

Session 型号

class Session(models.Model):

    corporal_structures = models.ForeignKey(SingleBodySegment)
    movement = ChainedManyToManyField(
        Movements,
        chained_field = 'corporal_structures',
        chained_model_field = 'corporal_segments'
    )

    metrics = models.ManyToManyField(Metrics, blank=True)

    date_session_begin = models.DateTimeField(default=timezone.now())
    date_session_end = models.DateTimeField(default=timezone.now())
    observations = models.TextField(blank=False

)

Metrics 型号

class Metrics(models.Model):
     name = models.CharField(max_length=255, blank=True)
     equation = models.CharField(max_length=255, blank=True)
     min_value = models.DecimalField(max_digits=5,decimal_places=3)
     max_value = models.DecimalField(max_digits=5,decimal_places=3)

     def __str__(self):
        return "%s" % self.name

由于ManyToMany关系,在Sessions表单中(在django admin中)我可以看到Metrics模型的指标列表,但我只能看到name 表单 Metrics 实例的属性

我不仅想要获取 name 属性,还想要获取属于 Metricsequationmin_valuemax_value 属性型号

在 model/table Metrics 中我创建了一个 Metrics 实例,但是当我创建一个 Session 模型的实例时,我应该为 Metrics 表示一个值这个 Session 实例,具有相应的本机字段,例如:

如何获取 Metrics 模型的其他字段并以 Session 形式提供它们?

如果我已经将 MetricsSessions 模型与 ManyToMany 关系相关联,这应该对我想要的有用,真的吗?

我一直在想,我的疑问更多的是关系主题和 Django ORM,而不是 django-smart-select 应用程序。 不知道我之前的这个肯定好不好

任何方向将不胜感激。

只需更改 Metrics 模型中的魔术函数 __str__,如下所示。

def __str__(self):
    return "{},{},{}".format(self.name, self.min_value, self.max_value)

此方法覆盖默认的 __str__ 函数。所以你可以根据需要修改return值。