dmeshr
Июнь 23, 2008 16:15:45
я newbie в питоне и джанге..
пытаюсь разобраться вот с чем:
у меня есть четыре параметра в модели данных - это степень воздействия, срочность, приоритет и время. в каждом по три-четыре значения (high, medium, low например). приоритет вычисляется на основе срочности и степени, а время на основе приоритета.
подскажите, как лучше это реализовать механизмами джанги… либо использовать какие-то константы в файле описания модели (тут вопрос, можно ли так делать) или же использовать по модели на каждый параметр (таблицы в БД почемуто не хочеться создавать, боюсь что накладно использовать будет), тогда вопрос, каким образом можно их связать.
Александр Кошелев
Июнь 23, 2008 16:31:29
Почему бы не попробовать такую модель:
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
использовать по модели на каждый параметр (таблицы в БД почемуто не хочеться создавать, боюсь что накладно использовать будет),
модель=>таблицы
Ferroman
Июнь 23, 2008 16:34:01
Для этого есть
choices и
Overriding default model methodsДостаточно просто сделать поля приоритета и времени нередактируемыми и вычислять их в методе save модели, перед сохранением.
PS: ээх нехороший Daevaorn уже дал готовый ответ :)
dmeshr
Июнь 24, 2008 07:15:27
огромное спасибо за код и ссылку Overriding default model methods.. (: