Django Model with several OneToOne relationships of same model: implementation strategy

问题描述 投票:0回答:0

我定义:

class Parameter(models.Model):
    name = models.CharField(max_length=40)
    value = models.FloatField()
    unit = models.CharField(max_length=20)

它描述了测量的参数。 我有各种特定的测量类,在这些类中我想定义几个特定参数以及自定义参数。

class SpecificMeasurement1(models.Model):
    ... some fields here....

    specific_parameter_1 = models.OneToOneField(
                Parameter,
                on_delete=models.CASCADE,
                related_name='specific_measurement_1_param_1')

    specific_parameter_2 = models.OneToOneField(
                Parameter,
                on_delete=models.CASCADE,
                related_name='specific_measurement_1_param_2')
  1. 像那样实现特定参数有意义吗?在上面的示例中,我在父类中定义了一对一关系,这通常不是最佳实践。
  2. 对于具体的参数,是否可以在Parameter-object中固定name-field?例如到 specific_parameter_1 的“specific_parameter_1”。
  3. 我将如何/在哪里定义任何自定义参数?想象一下,用户想要使用自定义名称将一些额外的参数添加到他们的测量中。我会在参数类中包含一个通用关系吗?在那种情况下,它可以包含在任何 SpecificMeasurementX 类中吗?
django model foreign-keys one-to-one
© www.soinside.com 2019 - 2024. All rights reserved.