У меня есть следующая структура:
class Profile(models.Model):
name = models.CharField(max_length=128)
class Characteristic(models.Model):
name = models.CharField(max_length=128)
class ProfileCharacteristic(models.Model):
profile = models.ForeignKey('profiles.Profile', on_delete=models.CASCADE, related_name='profile_characteristics')
characteristic = models.ForeignKey('characteristic.Characteristic', on_delete=models.CASCADE, related_name='profile_characteristics')
# следующие поля я б хотел упростить/изменить
value_text = models.TextField(null=True)
value_number = models.FloatField(null=True)
value_range = ArrayField(models.FloatField(), size=2, null=True)
value_list = ArrayField(models.CharField(max_length=128), null=true)
Другими словами, есть профиль, который формируется посредством комбинации характеристик и их допустимых значений(число, диапазон, список). Потом тот профиль присваивается для какого-то продукта.
Например дял бумаги.
Характеристики:Профиля:Клас А:
- Яркость: 98-112
- Белизна: 164-169
Клас Б:
- Яркость: 94-95
- Белизна: 160-163
Надесь суть понятна. Теперь к вопросу. Как мне упростить(сделать лучше) связи в моделях?