0

我正在使用django-smart-selects來根據在相同表單中選擇的選項部署特定表單字段。 我有以下型號:通過它們之間的關係在另一個模型中獲取模型的特定字段

Session,其中有ManyToManyMetrics

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關係,(在Django管理)的Sessions形式,我可以看到Metrics模型的指標清單,但我可以看到一個Metrics實例的name屬性形式

enter image description here

我希望得到不只是name屬性,我也想拿到equationmin_valuemax_value屬性這是Metrics模型的一部分

在模型/表Metrics是我創建一個度量實例,但是當我創建Session模型的情況下,我應該代表這個Session實例Metrics值,與對應的原生領域,如:

enter image description here

如何獲取Metrics型號的其他字段,並在Session表單中提供這些字段?

如果我已經將MetricsSessions模型與ManyToMany關係關聯起來,這應該對於獲得我想要的有用嗎?

我一直在想,我的疑問更多的是關係主題和Django ORM,而不是django-smart-select應用程序。 我不知道我是否在以前的肯定中表現不錯

任何方向將不勝感激。

+1

用'return「{},{},{}」格式化模型(self.name,self.min_value,self.max_value)更改'返回'%s「%self.name'行。」 –

+0

謝謝@AvinashRaj。如果你願意,你可以在這個問題上回答問題,因爲我贊同你的答案。問候。 – bgarcial

回答

1

只需更改Metrics模型中的魔術功能__str__,如下所示。

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

此方法將覆蓋默認的__str__函數。所以你可以根據你的需要修改返回值。

相關問題