更改模型字段时更新django任务
我有一个django模型,其中包含特定预订的特定任务(电子邮件提醒)应在何时运行的详细信息 看起来有点像这样:-更改模型字段时更新django任务,django,django-models,django-signals,Django,Django Models,Django Signals,我有一个django模型,其中包含特定预订的特定任务(电子邮件提醒)应在何时运行的详细信息 看起来有点像这样:- class Task(models.Model): PENDING = 'pending' IN_PROGRESS = 'in_progress' COMPLETE = 'complete' STATES = ( (PENDING, 'Pending'), (IN_PROGRESS, 'In Progress'),
class Task(models.Model):
PENDING = 'pending'
IN_PROGRESS = 'in_progress'
COMPLETE = 'complete'
STATES = (
(PENDING, 'Pending'),
(IN_PROGRESS, 'In Progress'),
(COMPLETE, 'Complete')
)
run_at = models.DateTimeField()
state = models.CharField(max_length=50, choices=STATES, default=PENDING)
class Meta:
ordering = ['run_at']
当预订日期更改时,我希望更新相应任务的run_
据我所知,有几种方法可以做到这一点:-
那么,使用save方法更有意义吗?或者尽我所能彻底地找到所有可以更改预订日期的地方?信号是为此类任务而设计的,对于您的情况,我相信使用信号是最好的方式 正如您所建议的,使用视图代码会带来必须在多个位置更新代码的问题,未来的开发人员在添加更改预订日期的代码时也必须记住这些限制。所以这不是解决这个问题的好办法 重写任务模型的save方法也是一个可行的解决方案,但由于信号是为此类任务设计的,因此从代码风格上看,这将是一个更好的选择