django формы и обработка метаданных для объектов - PullRequest
0 голосов
/ 06 июня 2011

Скажите, у меня есть эта модель:

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

Скажем, у меня также есть функция, которая принимает поля начала, конца и дня и хэширует битовый массив из 35 040 битов ('111100011 ...'). (каждый бит на самом деле 15-минутный кусок, в год 35040 блоков)

Я не обязательно ожидаю, что пользователь введет все эти биты, я хочу сделать это для них за кулисами. Однако, как мне «прикрепить» эти битовые данные к объекту Job, не требуя от пользователя ввода их в моей modelForm и не пытаясь проверить их данные?

1 Ответ

0 голосов
/ 06 июня 2011

Добавьте необязательное поле к вашей модели (оно будет исключено из проверки формы):

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

затем сгенерируйте его при сохранении в базу данных (переопределив метод сохранения модели):

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