我遇到了使用标志来标记模型实例以供将来处理的问题。我有一堂课:
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 新手,所以我对模型生命周期和可用方法的了解非常有限。我一直在阅读文档,到目前为止还没有找到任何解决方案。
关于如何解决这个问题的任何想法?