django形成和处理对象的元数据

时间:2011-06-06 19:27:20

标签: django validation hidden django-forms

说我有这个型号:

class Job(models.Model):
    name = models.CharField(max_length=32, unique=True) #name of job
    start = models.TimeField() #start time of job
    end = models.TimeField() #end time of job
    days = models.ManyToManyField(Day) #week days the job should be started on

假设我还有一个函数,它接受start,end和days字段并散列出35,040位('111100011 ......')的比特。 (每个位实际上是一个15分钟的块,一年有35040个块)

我不一定希望用户输入所有这些位,我想在幕后为他们做这些。但是,如何将此位数据“附加”到Job对象,而无需用户在我的modelForm上输入它而不尝试验证它的数据?

1 个答案:

答案 0 :(得分:0)

向模型添加可选字段(它将从表单验证中排除):

hash = models.CharField(max_length=.., Null=true, Blank=true)

然后在保存到数据库时生成它(通过覆盖模型的保存方法):

def save(self):
    self.hash = calc(...)
    super(MyModel, self).save()