Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 代表Django模型的成员级别_Python_Django_Postgresql_Model_Affiliate - Fatal编程技术网

Python 代表Django模型的成员级别

Python 代表Django模型的成员级别,python,django,postgresql,model,affiliate,Python,Django,Postgresql,Model,Affiliate,所以我在Django有一个代表附属公司的模型。用户每获得一次推荐都会收到一笔佣金。推荐人收到的数量取决于他们的用户级别。用户级别取决于他们有多少推荐。5以下推荐=基本,10以下推荐=中级,15以下推荐=高级 我如何对模型进行编码,以便用户级别由分支机构拥有的转介量自动确定?比方说 class Affiliate(models.Model): user= models.OneToOneField(User) affiliate_id = models.PositiveInteger

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

我如何对模型进行编码,以便用户级别由分支机构拥有的转介量自动确定?比方说

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 
模型方法的优点在于,它们的行为类似于框架其余部分中的模型字段。现在还不清楚你的会员模式是否有一个可供参考的数量,所以我在它的位置上使用了一些_字段。根据您希望此查找是数据驱动的方式,它可能需要自己的模型


在第一部分,我相信关于它们的问题已经很普遍了。

非常感谢。老实说,我想得到一些安慰。我正在考虑使用一种模型方法,但我希望有更有经验的人给我机会。