Django “存储关键值的干净方法”;物业;?
假设我有一个汽车模型。每辆车都有属性:颜色、大小、重量等。。。我希望用户允许为每个汽车对象创建新属性。但是,我希望共享“属性”,以便属性“大小”在数据库中只存在一次,但用户添加它们的每个对象都存在值 我以前的方法是两个模型:Car,KeyValue(key:String,value:String),Car与KeyValue有1:m的关系 现在,为了确保我的上述限制,我想到了以下几点:Django “存储关键值的干净方法”;物业;?,django,django-models,Django,Django Models,假设我有一个汽车模型。每辆车都有属性:颜色、大小、重量等。。。我希望用户允许为每个汽车对象创建新属性。但是,我希望共享“属性”,以便属性“大小”在数据库中只存在一次,但用户添加它们的每个对象都存在值 我以前的方法是两个模型:Car,KeyValue(key:String,value:String),Car与KeyValue有1:m的关系 现在,为了确保我的上述限制,我想到了以下几点: 三个对象:汽车、钥匙、价值 值(键:键) 汽车(1:m与价值的关系) 然而,这种反向方法非常有效,但在我看来
- 三个对象:汽车、钥匙、价值
- 值(键:键)
- 汽车(1:m与价值的关系)
class Color(models.Model):
name = models.CharField(max_length=50)
class Car(models.Model):
color = models.ForeignKey(Color, related_name='cars')
你应该有汽车和汽车模型 CarModel有两个属性列表。一个是该车型的所有汽车都具有“PerModel”属性(这意味着该车型的所有汽车都具有相同的值),另一个是每个汽车可以具有不同值“PerCar”的属性(仅名称) 我读了这个 我没用过这个,但我觉得没关系 一种不太复杂的方法是 django picklefield
我希望这可以帮助您这是一个非常清晰的标记,带有Django,这是一个Python框架。如果你要回答,至少要用正确的语言。我希望我的用户创建他们自己的属性
CarModel
{
KeyValue(key: String, value:String) propertyValuesPerModel;
List(String) propertyNamesPerCar;
}
Car
{
CarModel model;
KeyValue(key: String, value:String) propertiesPerCar; //Keys can only be those that appear on model.propertyNamesPerCar
}