2015-11-02 67 views
0

我有一個工作模型,領域名稱,描述和一些參數:Django的動態模型參數

class Job(models.Model): 
    name = models.CharField(max_length=200) 
    description = models.TextField(default='Add comprehensive job description') 
    # parametes 
    lat_lim=[MinValueValidator(-90), MaxValueValidator(90)] 
    long_lim=[MinValueValidator(-180), MaxValueValidator(180)] 
    lattitude = models.IntegerField('Lattitude North default value', null=True, validators=lat_lim) 
    longitude = models.IntegerField('Lattitude South default value', null=True, validators=long_lim) 
    time_query_begin = models.DateField('Job query start time', null=True, blank=True) 
    ... 

現在,我想一個更動態的方法,其中每個職業都有不同數量的參數和參數類型。這可能是,也有JOB1等參數高度經度lattitudetime_query_begin和作業2具有參數,如高度溫度

我想製作與參數模型的ManyToMany關係,其中包含字段名稱,默認值,最小值,最大值。

什麼是實現這一目標的最佳方式是什麼?

注意:我看到這個問題:Django dynamic model fields,但我不確定它是否解決了我的問題。

回答

0

根據您的要求,您可以使用Django的generic relations方案。

但是,如果您擁有postgres 9.4+(如果您想使用ORM,則爲django 1.9a),JSONField可能是處理用戶定義屬性的一種非常有吸引力的方式。

+0

謝謝你的回答。我正在使用Django 1.8和PostgreSQL 9.3。我研究了一般關係。這可能是答案。但是,我怎樣才能使我的參數模型的值域通用,以便它可以覆蓋整數和日期時間字段? –