我正在寻找一种可扩展的方法来创建新的用户点子集,而不必在每次创建新子集时进行迁移。你知道吗
例如,假设我有一个users
应用程序,其中total_points
是每个用户的pts_1
、pts_2
和pts_3
之和。你知道吗
我还创建了一个campaigns
应用程序,使用户可以通过执行一个操作(例如,为了简单起见,单击一个按钮)来获得积分。我可以通过Django管理员向平台添加新的活动,并对其进行设置,这样当用户完成活动时,他们就可以获得积分,从而(campaign, pk=n)
获得该用户pts_n
的积分。你知道吗
但是,为了做到这一点,我需要手动将pts_n
添加到models.py
并迁移到数据库。有更好的解决办法吗?我唯一能想到的就是分批预填充pts_n
,以避免每次添加新活动时迁移。你知道吗
我是不是想错了?我对这个很陌生。你知道吗
最简单的解决方案是创建一个UserPoints模型,在其中记录积分的授予。你知道吗
此模型假定类别是可选的。你知道吗
现在您可以动态计算用户的积分:
如果您只想要某个类别的点数:
您经常向数据库中添加
pts_n
列的解决方案在这里显然不可取,因为这将是一项大量工作,而且您将使用total_points
列作为其他列的聚合,这不是推荐的做法。你知道吗相关问题 更多 >
编程相关推荐