0

我正在设计一个在线游戏,玩家可以在其中工作 x 小时。当工作请求到来时,我会填充work_end(日期时间)和模型work_hours的字段player

但是检测工作何时完成的最佳方法是什么?我可以在我的模型中添加一个working字段并检查if player.working AND datetime.now() > player.work_end,但是在每次请求之后我应该在哪里调用它?我觉得这有点矫枉过正。

做这种事情的标准方法是什么?

4

1 回答 1

0

由于没有其他答案,我将解释我是如何完成它的。我在每次请求后调用了我提到的方法(将用户更新到当前时间),但我对我完成它的方式感到满意。

我创建了一个名为UpdatePlayerMiddleware我的播放器应用程序的中间件,并在 settings.py 中将它嵌入到其他中间件中。

class UpdatePlayerMiddleware(object):
    def process_request(self, request):
        if request.user.is_authenticated():
            request.user.get_profile().update_player()
        return None

虽然在性能方面这不是一个非常聪明的解决方案,但它很容易实现,并且它目前就像一个魅力。随意提出其他答案。

于 2013-09-05T15:16:25.860 回答