2015-11-02 56 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。我研究了一般关系。这可能是答案。但是,我怎样才能使我的参数模型的值域通用,以便它可以覆盖整数和日期时间字段? –