gpt4 book ai didi

python - 代表成员(member)级别的 Django 模型

转载 作者:行者123 更新时间:2023-11-29 14:00:49 24 4
gpt4 key购买 nike

所以我在 Django 中有一个代表附属公司的模型。用户每次获得推荐都会收到佣金。推荐人收到多少取决于他们的用户级别。用户级别取决于他们有多少推荐人。 5 次以下 = 基本,10 次以下 = 中级,15 次以下 = 高级。

如何对模型进行编码,以便用户级别由联属成员(member)的推荐量自动确定?让我们说

class Affiliate(models.Model):
user= models.OneToOneField(User)
affiliate_id = models.PositiveIntegerField(primary_key=True)
referral_id = models.PositiveIntegerField(blank=False, null=False)
user_level = (
('B', 'Basic'),
('I', 'Intermediate'),
('A', 'Advanced'),
default='B')
referred_by = models.ForeignKey(referral_id, default=1)

最佳答案

你不能。

django 模型(或其底层的数据库)是静态数据。做出运行时决策是模型方法的用途:

class Affiliate(model.Model):
affiliate_id = models.PositiveIntegerField(primary_key=True)


def user_level(self):
levels = [(5, 'B'), …]
for referrals, category in levels:
if self.some_field < referrals:
return category

模型方法的优点在于,它们的行为类似于框架其余部分中的模型字段。目前尚不清楚您的联盟模型是否有可用的推荐计数,因此我在其位置使用了 some_field。根据您希望此查找的数据驱动方式,它可能需要自己的模型。

django tutorial covers Model methods在第一部分,这让我相信关于它们的问题非常普遍。

关于python - 代表成员(member)级别的 Django 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19149756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com