Форум сайта python.su
я newbie в питоне и джанге..
пытаюсь разобраться вот с чем:
у меня есть четыре параметра в модели данных - это степень воздействия, срочность, приоритет и время. в каждом по три-четыре значения (high, medium, low например). приоритет вычисляется на основе срочности и степени, а время на основе приоритета.
подскажите, как лучше это реализовать механизмами джанги… либо использовать какие-то константы в файле описания модели (тут вопрос, можно ли так делать) или же использовать по модели на каждый параметр (таблицы в БД почемуто не хочеться создавать, боюсь что накладно использовать будет), тогда вопрос, каким образом можно их связать.
Офлайн
Почему бы не попробовать такую модель:
CHOICES = [ ( "high", "high" ), ( "medium", "medium" ), ( "low", "low" ), ] class Entity( models.Model ): impact = models.CharField( max_length = 10, choices = CHOICES ) urgency = models.CharField( max_length = 10, choices = CHOICES ) priority = models.CharField( max_length = 10, choices = CHOICES ) time = models.DateTimeField() def calc_prooprity( self ): pass def calc_time( self ): pass def save( self ): self.calc_priority() self.calc_time() super( Entity, self ).save()
dmeshrмодель=>таблицы
использовать по модели на каждый параметр (таблицы в БД почемуто не хочеться создавать, боюсь что накладно использовать будет),
Офлайн
Для этого есть choices и Overriding default model methods
Достаточно просто сделать поля приоритета и времени нередактируемыми и вычислять их в методе save модели, перед сохранением.
PS: ээх нехороший Daevaorn уже дал готовый ответ :)
Отредактировано (Июнь 23, 2008 16:34:54)
Офлайн
огромное спасибо за код и ссылку Overriding default model methods.. (:
Офлайн