小编Ger*_*alt的帖子

django:从该模型的实例中获取模型的最佳实践方法

my_instance是模型MyModel.
我正在寻找一个好方法:

my_model = get_model_for_instance(my_instance)
Run Code Online (Sandbox Code Playgroud)

我没有找到任何真正直接的方法来做到这一点.到目前为止,我已经想出了这个:

from django.db.models import get_model

my_model = get_model(my_instance._meta.app_label, my_instance.__class__.__name__)
Run Code Online (Sandbox Code Playgroud)

这可以接受吗?它甚至是一种可靠的,最佳实践方式吗?
_meta.object_name有似乎提供相同的__class__.__name__.可以?好还是坏?如果是这样,为什么?

另外,如果app标签在项目范围内多次出现,我怎么知道我得到了正确的模型,例如'django.contrib.auth'中的'auth',还有'myproject.auth'?
这种情况会get_model不可靠吗?

感谢任何提示/指示和经验分享!

django

59
推荐指数
3
解决办法
3万
查看次数

如何减少排名系统中的流行效应(投票行为)?

我所说的潮流效应就像这样描述:
已经排名靠前的项目有更高的投票倾向,甚至可能被投票.

我希望得到的是一些具体的建议,充其量基于你对数学公式的实际经验以及它所帮助的情况.

但是,任何有用的指针都非常受欢迎!

我的排名系统

请考虑在具有信誉系统的网站上的排名系统,并且用户仅对项目进行投票,并且排名表重置为每月开始新鲜.
每个用户在每个月内每个项目都有一个upvote,并且对于在某个月内投票使该项目在该月末成为最高排名的用户有奖励.

用户被告知以下内容增加了他们的upvote的重量:
1)...在upvoting时你的声誉越多
2)...你在当前月份内投票的项目越少(包括当前的upvote)
3 )...在您自己的投票之前的当月内该项目已经拥有的投票越少

排名表每天重新计算一次,并且对所有人都可见.

目标

我想实施第3部分,以便纠正项目的行列,在这些行列中无法判断某些用户是否因为随波逐流的影响而对其进行了支持(这些用户可能希望仅通过投票他们获得"战术"优势感知很多其他用户已经投票了)

此外,我希望通过这种方式来缓解可能使用的袜子木偶设法获得一些声誉,但赞成相同的项目或项目组.

是否有一个(甚至可能经过测试的?)数学公式,我可以在每个项目的时间顺序的upvotes列表上应用,以获得每个这些投票的高效率,以便他们的权重将以合理的方式得到纠正?
我认为它必须是一种lograthmic功能,但我不能完全控制它...

谢谢!

编辑

扎克说:"超出一定程度的受欢迎程度,额外的投票会降低某些事物的显示概率"

为了进一步澄清:我所追求的是哪些实际数学方法值得尝试,将以数学函数的形式,以合理,平衡的方式将流行的这种减少(即,将系数应用于权重,见上文)转化. .

我希望有人在上述方法的相似或一般情况下具有这种方法的实践经验.

math voting formula ranking

5
推荐指数
1
解决办法
345
查看次数

标签 统计

django ×1

formula ×1

math ×1

ranking ×1

voting ×1