【发布时间】:2021-10-16 23:33:25
【问题描述】:
我在使用标志来标记模型实例以供将来处理时遇到了问题。我有一堂课:
class MyModel(models.Model):
processed = models.BooleanField(default=False)
changed = models.DateTimeField(auto_now=True)
# More fields.
def save(self):
self.processed = False
super().save(*args, **kwargs)
然后我有一个管理命令:
class Command(BaseCommand):
def handle(self, *args: Any, **kwargs: Any) -> None:
models = MyModel.objects.filter(processed=False).order_by("changed")[:200]
for model in models:
# Do some processing
model.processed = True
model.save()
现在,很明显,当模型被保存时,它只是将实例重新标记为未处理。
我是 django 新手,所以我对模型生命周期和可用方法的了解非常有限。我一直在阅读文档,到目前为止还没有找到任何解决方案。
有什么想法可以解决这个问题吗?
【问题讨论】:
标签: django django-models django-model-field