通过它们之间的关系在另一个模型中获取模型的特定字段
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
属性,还想要获取属于 Metrics
的 equation
、min_value
和 max_value
属性型号
在 model/table Metrics
中我创建了一个 Metrics 实例,但是当我创建一个 Session
模型的实例时,我应该为 Metrics
表示一个值这个 Session
实例,具有相应的本机字段,例如:
如何获取 Metrics
模型的其他字段并以 Session
形式提供它们?
如果我已经将 Metrics
和 Sessions
模型与 ManyToMany
关系相关联,这应该对我想要的有用,真的吗?
我一直在想,我的疑问更多的是关系主题和 Django ORM,而不是 django-smart-select 应用程序。
不知道我之前的这个肯定好不好
任何方向将不胜感激。
只需更改 Metrics
模型中的魔术函数 __str__
,如下所示。
def __str__(self):
return "{},{},{}".format(self.name, self.min_value, self.max_value)
此方法覆盖默认的 __str__
函数。所以你可以根据需要修改return值。
我正在使用 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
属性,还想要获取属于 Metrics
的 equation
、min_value
和 max_value
属性型号
在 model/table Metrics
中我创建了一个 Metrics 实例,但是当我创建一个 Session
模型的实例时,我应该为 Metrics
表示一个值这个 Session
实例,具有相应的本机字段,例如:
如何获取 Metrics
模型的其他字段并以 Session
形式提供它们?
如果我已经将 Metrics
和 Sessions
模型与 ManyToMany
关系相关联,这应该对我想要的有用,真的吗?
我一直在想,我的疑问更多的是关系主题和 Django ORM,而不是 django-smart-select 应用程序。 不知道我之前的这个肯定好不好
任何方向将不胜感激。
只需更改 Metrics
模型中的魔术函数 __str__
,如下所示。
def __str__(self):
return "{},{},{}".format(self.name, self.min_value, self.max_value)
此方法覆盖默认的 __str__
函数。所以你可以根据需要修改return值。