如何检查Django数据库表的每一行字段中的真值或假值,并以此为基础进行计算?

2024-09-30 02:20:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Django应用程序中有一个表,它具有以下模型类:

  class LiveRoutes(models.Model):
       user = models.ForeignKey(User)
       route = models.ForeignKey(UserRoutes)
       status = models.ForeignKey(LiveRoutesStatus)
       traveller = models.ManyToManyField('LiveRouteTravellers')
       datetime = models.DateTimeField()
       calculated = models.NullBooleanField()
       def __unicode__(self):
         return self.route.__unicode__()

我想定义一个函数来对每一行的数据执行计算,在执行完计算之后,我想将calculate值设置为False,这样就不会再计算它了。我不知道该怎么做?或者是否有可能实现?在

^{pr2}$

任何帮助都将得到高度赞赏和感谢。在


Tags: django模型self应用程序modelmodelsstatusunicode
1条回答
网友
1楼 · 发布于 2024-09-30 02:20:17

像这样:

for route in LiveRoutes.objects.filter(calculated=False).iterator():
    # Do your calculation

    route.calculated = True
    route.save()

你有一个复杂的问题,你已经计算成了NullBooleanField。您可能希望它是一个普通的布尔字段,默认值为False。在

根据调用方式以及同时发生的其他活动,数据库事务也有许多潜在问题。在

另一种方法是django-async。有了它,你就可以发布一个工作来做计算,这将在一段时间后发生。见https://pypi.python.org/pypi/django-async/

相关问题 更多 >

    热门问题